这是我的创建视图,我想一次调用每个表单。 在提交表单后进入第二步组织者表单, 它不执行任何操作,而是呈现下一个表单和html
我想做的是创建venue_form
,创建organizer_form
保存
并在保存event_form
但event_form
模板未呈现之前将它们填充到事件中。
我在做什么错了。
def create_event(request, step=None):
venue_form = VenueForm()
organizer_form = OrganizerForm()
event_form = EventForm()
ctx = {
'venue_form': venue_form,
'organizer_form': organizer_form,
'event_form': event_form,
}
if request.method == "POST":
venue_form = VenueForm(request.POST)
return render(request, 'event/organizer_form.html', ctx)
if request.method == "POST":
organizer_form = OrganizerForm(request.POST)
return render(request, 'event/event_form.html', ctx)
else:
return render(request, 'event/venue_form.html', ctx)
答案 0 :(得分:0)
有重复的语句:
if request.method == "POST":
因此,解释器仅执行第一个。
答案 1 :(得分:0)
在我看来,您似乎想拥有一个“表单向导”,该向导可让您在不同的步骤中拥有多个表单。我已成功使用此库:https://django-formtools.readthedocs.io/en/latest/wizard.html
乍一看似乎有点复杂,但是一旦完成一两次,它就非常简单。只需按照他们的教程进行操作,您就可以实现自己的尝试。
如果您使用的是Django <1.8,则它已集成。但是它们已从1.8(https://docs.djangoproject.com/en/1.8/releases/1.8/#removal-of-django-contrib-formtools)中删除。