25
我来自Rails背景,在使用Django提供的“关联方法”时遇到了一些麻烦。我有两个型号(这已经简化了简洁起见),像这样:如何使用Django ManyToMany关系的'reverse'?
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
companies = models.ManyToManyField('Company', blank=True)
class Company(models.Model):
name = models.CharField(max_length=255)
根据Django文档:
“不要紧,这模式有ManyToManyField,但你应该只将它放在其中一个模型中 - 不能两者兼而有之。“
所以我明白,如果我有一个用户的情况下,所谓的用户,我可以这样做:
user.companies
我的问题是我怎么做相反?如何获取属于一个公司实例的所有用户,假设公司:
company.users # This doesn't work!
什么惯例做到这一点?我读过的文档并没有真正涵盖这一点。我需要这个协会双向工作,所以我不能简单地将它从一个模型转移到另一个模型。
完美的答案,感谢您的快速回复。 – 2012-02-19 20:19:10
对于related_name为+1。总是*讨厌*'model_set'语法。这是如此肮脏的感觉。 – 2014-03-03 19:35:07
我觉得这对我来说很_Lzy_。根据类名推断适当的向后关系并不难。 related_name使得它更容易处理。 – 2014-12-10 02:50:00