2017-05-06 200 views
0

在Django我有两个型号PostTag。我有一个ManyToManyField他们每个人都指向另一个。但是,当我添加新的Post并提供一些标记时,只有post -> tag关系记录在数据库中。我必须手动添加tag -> post关系。Django的许多一对多的关系对称不同类型

有没有办法让Django的自动做到这一点?

+2

使用它你为什么要在这两种模式中定义的多到多场?这听起来不对。你只需要在一个(可能是'Post'模型)上定义它,并且根据定义,这种关系是双向的。 – solarissmoke

+1

啊我明白了。我没有意识到我可以通过做tag.post_set.all()来查询帖子。 – zrbecker

回答

1

您也可以参考在ManyToManyField使用related_name。它更清晰,更易于理解。

class Post(models.Model): 
    tag = models.ManyToManyField(Tag, related_name="post") 

那么你通过 tag.post.all()