0
をthrough_field私はただ、例えば、intermediatoryモデルのネストされたフィールドには、中間モデルネストされたフィールドに
をthrough_fieldを設定することができますどのような方法があります:
class Person(models.Model):
name = models.CharField(max_length=50)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(
Person,
through='Membership',
through_fields=('assignee__group', 'person'),
)
class GroupLeader(models.Model)
identity = models.ForeignKey(Person)
group = models.ForeignKey(Group)
#more fields
class Membership(models.Model):
assignee = models.ForeignKey(GroupLeader)
person = models.ForeignKey(Person, on_delete=models.CASCADE)
# more fields
私はそれをやってみましたが、私はエラーを取得しています:
The intermediary model 'Membership' has no field 'assignee__group'
注:上記のような状況が発生した場合に備え、単なる一例です。
を取り除くことができます。グループリーダーが既に持っているメンバーシップにグループを追加する必要がありますか? – dnit13
はい、あなたはメンバーシップのグループフィールドが必要です。これは人とグループとの関係です。誰がリーダーであっても、「担当者」は同じグループのリーダーであると主張する責任があります。このグループからの全員のメンバーシップを変更すると、ある人が自分のグループのリーダーになれない、またはグループを変更したとします。 – Todor