46

我有一个MyModel2ManyToManyField另一个模型相关的模型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)
4

1 回答 1

98

这是多对多字段实例:

MyModel2.mymodel1

这是中间表模型:

MyModel2.mymodel1.through

这是中间模型管理器:

MyModel2.mymodel1.through.objects

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

MyModel2.mymodel1.through.objects.all()

这部分django 文档谈论through. 您可以through自己制作模型,否则它会自动生成。

于 2013-02-11T20:53:17.100 回答