我的模型有一個父對象,每個對象可以有零個或多個由外鍵關聯的子對象。從一個表單提交中創建父模型對象和子模型對象
我的自動生成ModelForm非常適合父對象,但我希望用戶能夠在創建父對象的同時創建一個或多個對象。注意,我並不是指從已有的子對象中挑選 - 我的意思是從頭開始創建子對象...
我目前使用很多django魔術來獲取表單,我:我意識到可能必須改變才能完成這個任務!
這裏是什麼,我目前所面對的一個想法:
# urls.py
(r'^create/$',
CreateAppView.as_view(
model=App,
template_name='edit.html')),
# edit.html
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
# model
class App(models.Model):
name = models.CharField(max_length=100)
class Activation(models.Model):
app = models.ForeignKey(App)
# view
class AppForm(ModelForm):
class Meta:
model = App
class CreateAppView(CreateView):
def post(self, request, *args, **kw):
form = AppForm(request.POST)
if form.is_valid():
app = form.save()
return HttpResponseRedirect(reverse('app_detail', args=(app.id,)))
else:
return super(CreateAppView, self).post(request, *args, **kw)
是的,這將工作 - 你正確地指出了限制,即它是完美的我需要知道的數兒童對象提前(我不這樣做)。我的計劃是在父創建時(使用您的方法)創建一個單獨的子對象,然後允許一次添加一個新對象。 – MrMotivator 2011-04-18 12:36:20
我想你在談論formset?閱讀Daniel發表的文章。 – 2011-04-18 23:30:39