如何直接查询Django为ManyToMany关系创建的表?

时间:2013-02-11 20:48:39

标签: python django many-to-many

我有一个模型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)

1 个答案:

答案 0 :(得分:49)

这是多对多的字段实例:

MyModel2.mymodel1

这是中间表模型:

MyModel2.mymodel1.through

这是中间模特经理:

MyModel2.mymodel1.through.objects

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

MyModel2.mymodel1.through.objects.all()
django docs的{p> This part谈论through。您可以自己制作through模型,否则会自动生成。