У меня есть две модели:
class Actor(models.Model):
name = models.CharField(max_length=30, unique = True)
event = models.ManyToManyField(Event, blank=True, null=True)
class Event(models.Model):
name = models.CharField(max_length=30, unique = True)
long_description = models.TextField(blank=True, null=True)
Я хочу создать форму, которая позволит мне определить связь между двумя моделями при добавлении новой записи. Это работает:
class ActorForm(forms.ModelForm):
class Meta:
model = Actor
Форма включает в себя как имя, так и событие, что позволяет мне создать нового актера и одновременно связать его с существующим событием.
С обратной стороны,
class EventForm(forms.ModelForm):
class Meta:
model = Event
Эта форма не включает актерскую ассоциацию. Так что я могу создать только новое событие. Я не могу одновременно связать его с существующим актером.
Я пытался создать встроенный набор форм:
EventFormSet = forms.models.inlineformset_factory(Event,
Actor,
can_delete = False,
extra = 2,
form = ActorForm)
но я получаю ошибку
<'class ctg.dtb.models.Actor'> has no ForeignKey to <'class ctg.dtb.models.Event'>
Это не так уж удивительно. Inlineformset работал для другого набора моделей, которые у меня были, но это другой пример. Я думаю, что я делаю это совершенно неправильно.
Общий вопрос: Как я могу создать форму, которая позволит мне создать новое событие и связать его с существующим актером?