wie Erzeuge ein Queryset in eine Tabelle template-django

Habe ich ein Modell, das definiert, wie gezeigt, die gehandelt wird auf eine Abfrage ein und bekommt eine Liste der Objekte, die platziert in die entsprechenden Zellen einer Tabelle. Hier ist der relevante Teil des Codes.

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

Aus dieser db möchte ich abrufen alle Objekte und legen Sie Sie in einer 2d-Tabelle mit der Zeile und Spalte definiert ist durch x,y des Objekts.Wenn kein Objekt vorhanden ist, für bestimmte (x,y) insbesondere dann, dass die slot angezeigt werden soll, leer in der Tabelle.Dies ist die Ansicht, die ich schrieb, zu treffen, mit denen diese Ziele.

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})

Hier ist der html-Teil des Codes

<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>

Ich zu bewältigen haben mehrere Probleme hier.

1.Mein code für views ist überhaupt nicht elegant (was schlecht ist da ich weiß, dass django bietet viele Sachen zu bewältigen solche Aufgaben), wie ich Variablen definieren, die speziell auf die Schleife Durchlaufen, statt jene aus den (x,y) die Werte der Datenbank-Objekte.

2.Ich bekomme die Ausgabe in [<Location: 21>] - format, aber ich möchte es als '21'.

3.Wie Stelle ich die leeren Zellen, wo es doesnot exist jedes Objekt, für gegeben (x,y).

4.Bitte weisen auf keine andere Weise möglich sein kann, dass mein code einfacher und allgemein.

InformationsquelleAutor Kamal Reddy | 2012-02-09

Schreibe einen Kommentar