Tengo un modelo que se define como se muestra, que actúa sobre una consulta y obtiene una lista de objetos que deben colocarse en las celdas apropiadas de una tabla. Aquí está la parte relevante del código.cómo renderizar un Queryset en una plantilla de tabla-django
class Location(models.Model):
x=models.IntegerField(null=True)
y=models.IntegerField(null=True)
z=models.CharField(max_length=5,null=True)
def __unicode__(self):
return self.z
De este db quiero recuperar todos los objetos y colocarlos en un 2d-mesa con la fila y la columna definida por x, y de que object.If no hay ningún objeto con certeza (x, y), entonces ese espacio en particular debe mostrarse vacío en la tabla. Esta es la vista que escribí para cumplir esos fines.
def gettable(request):
events=[]
for xdim in xrange(3):
xe=[]
for ydim in xrange(3):
object=[0]
object.append(Location.objects.filter(x=xdim,y=ydim))
xe.append(object[-1])
events.append(xe)
return render(request, 'scheduler/table.html', {'events':events})
Aquí es la parte del código html
<table border="1">
<th>Header 0</th>
<th>Header 1</th>
<th>Header 2</th>
{% for event in events %}
<tr>
{% for x in event %} <td>{{ x }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
Tengo que hacer frente a varios problemas aquí.
1. Mi código para vistas no es del todo elegante (lo cual es malo, ya que sé que django ofrece muchas cosas para abordar tales tareas) ya que estoy definiendo variables específicamente para recorrer en lugar de tomarlas del (x, y) valores de los objetos de la base de datos.
2. Obtengo la salida en formato [<Location: 21>]
pero la quiero como '21'.
3.¿Cómo introduzco celdas vacías donde no existe ningún objeto para given (x, y).
4. Sugiera cualquier otra forma posible que pueda hacer que mi código sea más simple y general.