他のモデルのフィールドで制限する必要がある場合、モデルの選択肢をどのように機能させるか理解してください。ご覧のように、すべての学生は、それが(ForeignKeyので構成された)グループの持つモデル内でlimit_choices_toを動的に指定してください
class Student(models.Model):
group = models.ForeignKey(Group, on_delete=models.PROTECT)
name = models.CharField(max_length=140, null=True)
brd_date = models.DateField(null=True)
ticket = models.IntegerField(null=True, unique=True)
:
グループ:
class Group(models.Model):
name = models.CharField(max_length=10, null=True)
leader = models.OneToOneField(
'Student',
related_name='+',
null=True,
blank=True,
on_delete=models.SET_NULL,
limit_choices_to={'group': 2},
)
と生徒 現在、私は2つのモデルがあります。 しかし、すべてのグループには独自のリーダーがある場合とない場合があります。彼は実際にに属するグループから選ばれた1人の特定の学生(OneToOneFieldによって設定されています)です。 グループに制限されることなく、すべての生徒をすべてのグループのリーダーとして選ぶことが可能になります。提供されたGroupモデルでは、limit_choices_toオプションを設定して、テスト目的のためだけにグループ2の選択を制限しました。
このパラメータを動的に設定することができます。その結果、グループリーダーの選択でこのグループの学生のみを選択できるグループモデルに基づいてフォームクラスを作成する可能性がありますか?
ありがとうございます。
可能性のある複製http://stackoverflow.com/questions/232435/how-do--lastrict-foreign-keys-choices-to-related-objects-only-in-django –
リンクありがとうございます。はい、多くのものが発明されました。しかし、誰かがそのようなパズルを解決するための共通のアプローチを記述できるなら、私は感謝します。私はグループからの学生へのアクセスを使用するというアイデアが好きです:object.student_set.all()しかし、グループモデルの学生リーダーフィールドを実装する明確な方法はありますか? – dimdiden