【发布时间】:2009-11-15 13:59:57
【问题描述】:
我有多个类似的抽象模型
Class Article(models.Model):
title = models.CharField()
body = models.TextField()
created_date = models.DateTimeField()
author_name = models.CharField()
class Video(models.Model):
title = models.CharField()
body = models.TextField()
created_date = models.DateTimeField()
video_asset = models.CharField()
现在在特定页面上,我想根据它们的 created_date 将这两个模型聚合到一个列表中。我想知道的所有模型都有title 和created_date,所以我可以这样做:
<ul>
{% for object in object_list %}
<li>{{ object.title }} on {{ object.created_at }}</li>
{% endfor %}
</ul>
我可以指望这些字段没有问题。
我考虑过创建一个附加模型并使用通用外键。有点像聚合模型。然后每次创建一个新对象时,我都会发出一个要创建的信号,然后从这个通用表中提取。不过我不太喜欢这个主意。看起来非常冗余。
有什么想法吗?
更新:我找到了这个条目Using django how can I combine two queries from separate models into one query?,但它在我的情况下不起作用,因为我正在为这些使用抽象模型类(我只是没有在示例中显示它以使其简单明了尽可能)。我研究了继承而不是抽象,但我认为对常量连接的性能影响会造成损失。也许不是
【问题讨论】:
标签: django django-models aggregate