猿问

如何使用多个模板实现 Django 会话向导

我尝试使用 django-formtools 附带的表单向导在 django 中实现多步骤表单,到目前为止,它会逐步遍历所有表单,直到最后一个表单,然后不是调用该done方法,而是页面返回到第一个表单。我的一些代码如下所示:


网址.py


from django.urls import path

from minereg import views


urlpatterns = [

    path('',views.ContactWizard.as_view(views.FORMS),name="registration"),

]

视图.py


from django.shortcuts import render

from formtools.wizard.views import SessionWizardView

from .forms import RegForm1,RegForm2


FORMS = [("home",RegForm1),("bank",RegForm2)]


TEMPLATES = {"home":"home.html",

            "bank":"bank.html"}



class ContactWizard(SessionWizardView):

    def get_template_names(self):

        return [TEMPLATES[self.steps.current]]


    def done(self,form_list, **kwargs):  #Required

        form_data = [form.cleaned_data for form in form_list]

        print(form_data)


        return render(self.request,template_name = "thanks.html")

方法中的print(form_data)indone没有发生,显示代码永远不会到达那一点。


慕仙森
浏览 115回答 1
1回答

万千封印

刚刚在代码中发现了问题。home.html通过将行更改<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.next }}"> Next step </button>为<button name="wizard_goto_step" type="submit"> Next step </button>
随时随地看视频慕课网APP

相关分类

Python
我要回答