4
一對多的關係,我有兩個型號:編輯許多的反面與Django的通用形式
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)
在前面的問題:Django form linking 2 models by many to many field,我創建了一個保存功能的EventForm:
class EventForm(forms.ModelForm):
class Meta:
model = Event
def save(self, commit=True):
instance = forms.ModelForm.save(self)
instance.actors_set.clear()
for actor in self.cleaned_data['actors']:
instance.actors_set.add(actors)
return instance
這使我可以從定義的m2m連接的另一端添加m2m鏈接。
現在我想編輯該條目。我一直在使用一個通用函數:
def generic_edit(request, modelname, object_id):
modelname = modelname.lower()
form_class = form_dict[modelname]
return update_object(request,
form_class = form_class,
object_id = object_id,
template_name = 'createdit.html'
)
但這會拉動所有的信息,除了保存到這個對象的多對多選擇。
我想我需要做類似這樣的事情:Editing both sides of M2M in Admin Page,但我還沒弄明白。
如何使用通用update_object編輯多對多鏈接的另一端?