【问题标题】:Django querying for objects with ManyToManyFieldsDjango 使用 ManyToManyFields 查询对象
【发布时间】:2014-04-26 04:57:14
【问题描述】:

情况如下:

class Party:
    # Hosts of the party
    hosts = ManyToManyField("User")

我有一个用户u。我想查询他主持的所有派对。我该怎么做?

Party.objects.filter(hosts__in=[u])
Party.objects.filter(hosts__contains=u)

这些都不起作用。

【问题讨论】:

    标签: python sql database django


    【解决方案1】:

    这个怎么样

    u.party_set.all()
    

    【讨论】:

    • “用户”对象没有属性“party_set”
    • @Charles 应该如此,请参阅this。如果你设置了related_name,你应该使用它。这是最干净的方式。
    • @Charles 请注意,您的模型应该继承 django 的基本模型,即您的类应该是 class Party(models.Model): ,然后尝试同步数据库。
    • 谢谢,成功了;我有一个related_name 集。另外,我确实继承了models.Model,我只是没有在我的示例中写这个。再次感谢!
    【解决方案2】:

    您可以执行类似u.party_set.all() 的操作,其中party_set 是一个Party manager 对象,就像Party.objects 一样,因此您也可以对其应用不同的过滤器。 你可以进一步挖掘here

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 2017-05-22
      • 1970-01-01
      • 2021-09-15
      • 2017-10-21
      • 1970-01-01
      • 2013-12-11
      • 2021-10-26
      相关资源
      最近更新 更多