【发布时间】:2011-04-18 01:21:13
【问题描述】:
我的模型有一个父对象,每个父对象可以有零个或多个通过外键关联的子对象。
我的自动生成的 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)
【问题讨论】:
标签: django django-models django-forms