为什么不渲染模板

时间:2020-04-29 17:10:41

标签: python django django-forms

这是我的创建视图,我想一次调用每个表单。 在提交表单后进入第二步组织者表单, 它不执行任何操作,而是呈现下一个表单和html

我想做的是创建venue_form,创建organizer_form保存 并在保存event_formevent_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)

2 个答案:

答案 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)中删除。