我一直在寻找一种制作django模板的方法,该模板可以在表格中每行显示2个以上的值,
假设我有一个包含5个属性的类,我想在HTML页面的表格中显示这些属性值。起初我尝试使用字典,但5个属性中只有2个是不够的。
让我们说我的对象就像:
class ModelA(models.Model):
ID = models.IntegerField(primary_key=True, db_column='ID')
name = models.CharField(max_length=60, db_column='name')
yesorno = models.CharField(max_length=9, db_column='yes/no')
text = models.TextField(db_column='text')
description = models.TextField(db_column='description')
现在在视图中我调用所有这些模型属性,我应该在什么数据结构中保存所有内容,以及如何将每个对象中的所有这5个属性放在一行中。 (有时可能需要在表格中显示数百个对象(因此,100行))
答案 0 :(得分:2)
抓住所有物体(相应地过滤)。
由于@ init3指出不需要ID,因为Django会自动添加ID,而yesorno
应该是Bool。
# view.py
model_as = []
for id in ids:
try:
model_a = ModelA.objects.get(ID=id)
except ModelD.DoesNotExist:
# No model found
pass
else:
model_as.append(model_a)
return render_to_response('template.html',
{'model_as': model_as},
context_instance=RequestContext(request))
循环模板中的对象,并在您想要的任何列中打印每个变量。
# template.html
<table>
{% for model_a in model_as %}
<tr>
<td>
{{ model_a.ID }}
{{ model_a.name }}
{{ model_a.yesorno }}
{{ model_a.text }}
{{ model_a.description }}
</td>
<tr>
{% empty %}
<tr>
<td>No ModelAs to see here</td>
<tr>
{% endfor %}
</table>