【发布时间】:2011-06-22 03:07:43
【问题描述】:
我正在尝试使用 Django 显示来自多个模型的信息表,但我不确定这样做的最佳实践是什么。这是我的 models.py 的精简版:
from django.contrib.auth.models import User
class Widget(models.Model):
name = models.CharField(max_length=50)
pass
class Finished_Widget(models.Model):
user = models.ForeignKey(User)
thing = models.ForeignKey(Thing)
created = models.DateTimeField(editable=False)
这是一个非常简单的设置,用户和小部件通过未知数量的 Finished_Widget 对象连接。我想在我的 html 中显示小部件名称的实例列表和最近完成的小部件的日期。显然下面的代码不起作用,但希望它能说明我希望输出的数据。
{% for widget in widget_list %}
<p>{{ widget.name }}</p>
<p>{{ widget__Finished_Widget.latest.created }}</p>
{% endfor %}
我想了很多不同的方法来解决这个问题,包括:
- 通过视图将所需日期作为附加属性附加
- 在视图中创建字典并在模板中调用它
- ManyToManyField 使用 'through' 参数
- 向 Widget 添加 meta 调用最新 Finished_Widget 的创建日期
很遗憾,我无法完成这些工作,我不确定哪些(如果有的话)是正确的。
注意:我已经在 SO 上发现了很多关于这个问题的变体,这使得这非常接近于欺骗,但它们似乎对我没有多大帮助,因为需要将 Finished_Widget 列表缩小到那些匹配用户 ID,匹配 Widget ID,并且只有最新的。
【问题讨论】:
标签: python django django-models