首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取最新的“创建”行(跨表)

获取最新的“创建”行(跨表)
EN

Stack Overflow用户
提问于 2013-03-21 16:54:32
回答 1查看 41关注 0票数 1

如果我有以下表格:

代码语言:javascript
复制
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()

如何找到具有最小数据库命中量的某个SculptureVase的最新Potter (即,这是对我的问题的过度简化,我有两个以上的表引用Potter__)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-21 17:01:31

假设您有接收波特id的视图:

代码语言:javascript
复制
ordered_sculptures = Sculpture.objects.filter(potter=potter).order_by('-created') 
ordered_vases = Vase.objects.filter(potter=potter).order_by('-created')

编辑:我可能误解了一些东西,所以如果您想要最新的使用queryset,可以只引用每个queryset的第一个元素(如果它们存在的话):

代码语言:javascript
复制
latest = ordered_sculptures[0]

花瓶也是如此。

参考资料:在医生那里

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

代码语言:javascript
复制
latest = Sculpture.objects.filter(potter=potter).reverse()[0]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15553513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档