私はRailsの背景から来ていて、Djangoで提供されている "Association Methods"を利用するのに少し問題があります。私はそうのように、(簡潔にするために簡略化されている)は、2つのモデルがあります: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!
どのような方法がありますか?私が読んだドキュメンテーションは、これを実際にカバーしていません。私は両方の方法で働く協会が必要なので、私は単にそれをあるモデルから別のモデルに移動することはできません。
完璧な答え、パラメータとして
related_name
を提供することが迅速な回答に感謝を上書きすることができます。 –+1のrelated_name。常に* model_set構文を嫌っています。それはとても汚い感じです。 –
私はそれが私に_lazy_を感じると思う。クラス名に基づいて適切な後方関係を推測することは難しいことではありません。 related_nameを使用すると、作業がはるかに簡単になります。 –