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

jul*_*jul 27 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)
Run Code Online (Sandbox Code Playgroud)

jpi*_*pic 57

这是多对多的字段实例:

MyModel2.mymodel1
Run Code Online (Sandbox Code Playgroud)

这是中间表模型:

MyModel2.mymodel1.through
Run Code Online (Sandbox Code Playgroud)

这是中介模型经理:

MyModel2.mymodel1.through.objects
Run Code Online (Sandbox Code Playgroud)

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

MyModel2.mymodel1.through.objects.all()
Run Code Online (Sandbox Code Playgroud)

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

  • 您有错字;)结束了! (2认同)