У меня есть модель, которая определена как показано, которая действует на запрос и получает список объектов, которые должны быть помещены в соответствующие ячейки таблицы.Вот соответствующая часть кода.
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
Из этой базы данных я хочу получить все объекты и поместить их в 2d-таблицу со строками и столбцами, определенными x, y этого объекта.не является определенным объектом (x, y), тогда этот конкретный слот должен быть показан пустым в таблице. Это представление, которое я написал для достижения этих целей.
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})
Вот 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>
Мне нужно решить несколько вопросов здесь.
1.Мой код для представлений совсем неизящный (что плохо, так как я знаю, что django предлагает множество вещей для решения таких задач), так как я определяю переменные специально для циклического прохождения, а не беру их из значений (x, y) объектов базы данных.
2.Я получаю вывод в формате [<Location: 21>]
, но хочу, чтобы он был равен '21'.
3.Как я ввожу пустые ячейки, где не существует какого-либо объекта для данного (x, y).
4.Пожалуйста, предложите любой другой возможный способ, который может сделать мой код более простым и общим.