【问题标题】:How to query directly the table created by Django for a ManyToMany relation?如何直接查询Django为ManyToMany关系创建的表?
【发布时间】:2013-01-27 01:16:01
【问题描述】:

我有一个模型 MyModel2,其中一个 ManyToManyField 与另一个模型 MyModel1 相关。

我怎样才能得到对 mymodel1.id, mymodel2.id,如 Django 为此关系创建的表中所示?我是否必须对此表执行原始 SQL 查询,或者是否可以通过此模型的对象管理器?

class MyModel1(models.Model):
    name = models.CharField(max_length=50)
  

class MyModel2(models.Model):
    name = models.CharField(max_length=50)
    mymodel1 = models.ManyToManyField(MyModel1)

【问题讨论】:

    标签: python django many-to-many


    【解决方案1】:

    这是多对多字段实例:

    MyModel2.mymodel1
    

    这是中间表模型:

    MyModel2.mymodel1.through
    

    这是中间模型管理器:

    MyModel2.mymodel1.through.objects
    

    这将返回所有中间模型的查询集:

    MyModel2.mymodel1.through.objects.all()
    

    django 文档的This part 谈论through。可以自己制作through模型,否则会自动生成。

    【讨论】:

    • 'ManyToManyDescriptor' 对象没有属性 'though'
    • 你有一个错字;)它通过了!
    猜你喜欢
    • 2012-03-14
    • 1970-01-01
    • 2013-06-08
    • 2012-12-07
    • 2021-12-31
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多