我正在尝试在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 %}
答案 0 :(得分:0)
提高性能的一种方法是只保存单个表中所有表的最新项,并通过添加itemType
之类的字段来区分它们。所以你必须只查询这个表并将其循环到模板中。
如果您的项目表格非常不同并且具有不同的字段,则保存在单个表格中是不可行的。在这种情况下,我认为你做的很好。我只会更改查询以获取最后一个条目,如:
item = itemName.objects.last()