Django在表格,模板中超过2项

时间:2012-09-27 08:00:33

标签: html django data-structures model

我一直在寻找一种制作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行))

1 个答案:

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