【问题标题】:Querying Django object for number of One-to-Many related objects查询 Django 对象以获取一对多相关对象的数量
【发布时间】:2011-03-29 15:35:20
【问题描述】:

如果 Django 中的对象只有一个一对多关系(父对象,正在软删除),我想更新它。

有没有办法查询一个对象以找出它有多少多对多关系?

这是我的尝试(失败):

  pages = Page.objects.filter(accounts=accountid)
    for page in pages:
        if page.accounts.all().count == 1:
            page.deleted = 1
            user.save()  

谢谢。

【问题讨论】:

  • 我认为您的代码中有几个拼写错误。第一。 page.accounts.all().count 应该是 page.accounts.all().count() 并且你有 user.save(),你可能想要 page.save() 代替。不确定您的模型是什么样的,但如果 page.deleted 是布尔值,您应该使用 page.deleted = True 而不是 page.deleted = 1。

标签: django one-to-many


【解决方案1】:

不确定您的架构,但在我的示例中,Car 对象对用户调用“用户”有一个 Fk:

User.objects.annotate(num_cars=Count('cars')).filter(num_cars=1) 这为您提供了只有一辆车的用户。

http://docs.djangoproject.com/en/dev/topics/db/aggregation/#joins-and-aggregates

【讨论】:

猜你喜欢
  • 2011-02-19
  • 2017-09-12
  • 1970-01-01
  • 2020-07-16
  • 2023-02-17
  • 2016-07-11
  • 2016-09-05
  • 2015-03-07
  • 1970-01-01
相关资源
最近更新 更多