【问题标题】:Display last result from multiple tables in Django在 Django 中显示多个表的最后一个结果
【发布时间】:2016-03-14 01:22:56
【问题描述】:

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

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

我想要做的是使用 for 循环遍历每个表并将最新的表条目添加到变量项。然后将其发送到 HTML,该 HTML 执行另一个 for 循环以使用数据生成所有 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 %}

【问题讨论】:

  • 你的问题有点令人困惑——你能澄清一下你想要做的更多吗?

标签: python html mysql django


【解决方案1】:

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

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

item = itemName.objects.last()

【讨论】:

  • 谢谢。这实际上非常有趣,并且可能是答案,因为表都具有完全相同的字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多