Mam model, który jest zdefiniowany jako pokazany, który działa na kwerendę i pobiera listę obiektów, które muszą być umieszczone w odpowiednich komórkach tabeli. Oto odpowiednia część kodu.sposób renderowania zestawu kwerend do szablonu tabeli-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
W ten bit I ma pobrać wszystkie obiekty i umieścić je w tabeli 2D w wierszach i kolumnach określonym przez X i Y, które object.If nie ma obiektu dla określonych transmisji (x, y), a następnie ten konkretny slot powinien być pusty w tabeli. To jest widok, który napisałem, aby spełnić te cele.
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})
Oto część html kodu
<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>
mam do rozwiązania wielu problemów tutaj.
1. Mój kod dla widoków wcale nie jest elegancki (co jest złe, ponieważ wiem, że django oferuje mnóstwo rzeczy do radzenia sobie z takimi zadaniami), ponieważ definiuję zmienne specjalnie do przechodzenia w pętlę zamiast odbierania tych z (x, y) wartości obiektów bazy danych.
2. Otrzymuję dane wyjściowe w formacie [<Location: 21>]
, ale chcę je jako "21".
3.Jak wprowadzać puste komórki tam, gdzie nie ma żadnego obiektu dla danego (x, y).
4. Proszę zasugerować każdy inny możliwy sposób, dzięki któremu mój kod stanie się prostszy i ogólny.