显示Django

时间:2015-12-08 22:42:56

标签: python html mysql django

我正在尝试在Django中显示多个表中的最新结果。所以基本上我最终会在我的页面上分配很多Div,每个表格的最新条目的值和时间。

下面的代码只是我放在一起但不起作用的一些基本想法。

我要做的是使用for循环来遍历每个表,并将最新的表条目添加到变量项。然后将其发送到另一个for循环的HTML,以使所有Div与数据一起生成。

Django有更简单的方法吗?

非常感谢!

view.py

for table in tables:
        itemName = getattr(models, 'Item{0}'.format(table))
        item = itemName.objects.all()[:1]

    return render(request, 'html/list_view.html',
        {'item': item})

HTML

{% for item in item %}

<div>
    <h1>{{ table name }}</h1>
    <p>{{ item.time }}</p>  
    <p>{{ item.value }}</p> 
</div>

{% endfor %}

1 个答案:

答案 0 :(得分:0)

提高性能的一种方法是只保存单个表中所有表的最新项,并通过添加itemType之类的字段来区分它们。所以你必须只查询这个表并将其循环到模板中。

如果您的项目表格非常不同并且具有不同的字段,则保存在单个表格中是不可行的。在这种情况下,我认为你做的很好。我只会更改查询以获取最后一个条目,如:

item = itemName.objects.last()