【发布时间】:2011-09-18 23:14:31
【问题描述】:
假设我正在使用 Django 为 VCS 建模,使用类似这样的模型:
class VCSItem(models.Model):
directory = models.CharField()
name = models.CharField()
revision = models.IntegerField()
现在(目录,名称)唯一标识我的系统跟踪的项目,但每个项目可能有多个修订。
我想列出所有项目,其中每个项目都有我系统的最大跟踪修订版。 Django 是否为此提供了内置功能?
最坏的情况,我可以自己做:
newest_items = {}
for item in VCSItem.objects.all().order_by("revision"):
newest_item[item.directory + item.name] = item
缺点是我必须从数据库中获取所有条目并循环遍历每个条目——如果可能的话,我宁愿避免这样做。
【问题讨论】: