У меня есть эти три модели и одна ModelForm.В его нынешнем виде я могу добавить одного и того же актера в фильм несколько раз.
Я ищу способ предотвратить это, введя набор запросов в поле лица CastingsForm, что исключит выбор Person, если его идентификатор ужеприсутствует в этом фильме.
Но .. Я не знаю, как это написать.
class Person(models.Model):
first_name = models.CharField(max_length=32)
last_name = models.CharField(max_length=32)
class Movie(models.Model):
title = models.CharField(max_length=128)
director = models.ForeignKey(Person, on_delete=models.SET_NULL, null=True)
screenplay = models.ForeignKey(Person, on_delete=models.SET_NULL, null=True)
starring = models.ManyToManyField(Person, through='ThroughModel')
class ThroughModel(models.Model):
person = models.ForeignKey(Person, on_delete=models.SET_NULL, null=True)
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
role = models.CharField(max_length=128, null=True)
и эта форма
class CastingsForm(forms.ModelForm):
role = forms.CharField(required=False)
person = forms.ModelChoiceField(required=False)
movie = forms.ModelChoiceField(Movie.objects.all(), required=False)
class Meta:
model = ThroughModel
fields = ['role', 'person', 'movie']