基本的に私はスポーツチームをモデル化するためのウェブサイトを書いています、そして私は2つのモデル、プレーヤーとチームを持っています。チームには、プレーヤーとのManyToManyField関係があり、キャプテンを表すOneToOneFieldもあります。これは、チームのプレーヤーに限定する必要があります(つまり、プレーヤーの1人ではないキャプテンを持つことはできません)。
class Player(models.Model):
name = models.CharField()
.....
class Team(models.Model):
players = models.ManyToManyField(Player)
captain = models.OneToOneField(Player)
....
基本的に私が知りたいのは、OneToOneField、キャプテンをチーム内のそれらのプレーヤーの1人だけを選択するように制限するための最良の方法は何ですか。
私が試してみました
limit_choices_to={'team_set__players__name__icontains':""}
kwargとして、そして私が働くことができると思う他の唯一の方法は、データベースルックアップを行うキャプテンフィールドのカスタムバリデーターですが、確かにもっと良い方法があるはずですか?
助けてくれてありがとう。