我有兩個型號:Django的形式由許多連接2種型號衆多領域
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
該表格包括名稱和事件,允許我創建一個新的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適用於另一組模型,但這是一個不同的例子。我想我完全錯了。
總體問題:如何創建一個表單,允許我創建一個新的事件並將其鏈接到現有的Actor?
'Event'中涉及多少個'Actor'?從我的感覺來看,我首先會創建一個從'Event'到'Actor'的外鍵。 – 2010-03-23 20:24:29
我明白你的觀點,但我認爲多對多是正確的。不止一個演員可以參加一個活動,而演員可以參加多個活動。 – 2010-03-23 22:06:15