1

如果我有以下表格:

class Potter(models.Model):
    name = models.CharField()

class Sculpture(models.Model):
    potter = models.ForeignKey(Potter)
    created = models.DateTimeField()

class Vase(models.Model):
    potter = models.ForeignKey(Potter)
    created = models.DateTimeField()

我怎样才能找到最新的Sculpture或具有最少数据库命中Vase的某个(即这是对我的问题的过度简化,我有两个以上的表引用PotterPotter

4

1 回答 1

2

假设您有一个收到 potter id 的视图:

ordered_sculptures = Sculpture.objects.filter(potter=potter).order_by('-created') 
ordered_vases = Vase.objects.filter(potter=potter).order_by('-created')

编辑:我可能误读了一些东西,所以如果你想使用最新的查询集,你可以引用每个查询集的第一个元素(如果它们存在):

latest = ordered_sculptures[0]

花瓶也是如此。

参考:文档中的 django order_by

如果您为这些查询集定义了默认排序,另一种方法是 reverse 方法:

latest = Sculpture.objects.filter(potter=potter).reverse()[0]
于 2013-03-21T17:01:31.630 回答