Django 正确<;形式动作="&引用;SessionWizardView的URL

Django 正确<;形式动作="&引用;SessionWizardView的URL,django,django-forms,django-templates,django-views,Django,Django Forms,Django Templates,Django Views,获取Django SessionWizardView将数据提交到我的数据库,我正在尝试隔离该问题 我注意到 除了元素外,表单还必须指定两件事: 其中:对应于用户输入的数据应返回到的URL 如何:返回数据的HTTP方法 及 发送回Django网站的表单数据由视图处理, 通常与发布表单的视图相同。这使我们能够 重复使用一些相同的逻辑 目前我正在使用,我相信这是正确的 问题是,我的视图被称为class SurveyWizardOne(SessionWizardView):但是如果我试图在表单操作中

获取Django SessionWizardView将数据提交到我的数据库,我正在尝试隔离该问题

我注意到

除了元素外,表单还必须指定两件事:

  • 其中:对应于用户输入的数据应返回到的URL
  • 如何:返回数据的HTTP方法

发送回Django网站的表单数据由视图处理, 通常与发布表单的视图相同。这使我们能够 重复使用一些相同的逻辑

目前我正在使用
,我相信这是正确的

问题是,我的视图被称为
class SurveyWizardOne(SessionWizardView):
但是如果我试图在
表单操作中使用它,我会在调查的第一页上单击Next(下一步)时出错

问题:基于以下内容的
action=“/surveyone/”
正确吗

谢谢

url.py

url(r'^surveyone/$', SurveyWizardOne.as_view([
                                             SurveyFormIT1,
                                             SurveyFormIT2,
                                             Start,
                                             SurveyFormA, 
                                             SurveyFormB, 
                                             SurveyFormC, 
                                             SurveyFormD, 
                                             SurveyFormE,
                                             SurveyFormSpike1, 
                                             SurveyFormF1,
                                             SurveyFormF2,
                                             SurveyFormF3,
                                             SurveyFormDV1,
                                             SurveyFormF4,
                                             SurveyFormF5,
                                             SurveyFormF6,
                                             SurveyFormSpike2, 
                                             SurveyFormDV2,
                                             SurveyFormF7,
                                             SurveyFormF8,
                                             SurveyFormF9,
                                             SurveyFormDV3,
                                             SurveyFormDV4,
                                             SurveyFormDV5,
                                             SurveyFormG,
                                             SurveyFormH,
                                             SurveyFormI
                                             ])),  
class SurveyWizardOne(SessionWizardView):                             
    def get_context_data(self, form, **kwargs):
        context = super(SurveyWizardOne, self).get_context_data(form, **kwargs)                      
        step = int(self.steps.current)     



    ....
    ....


        return context 


    def done(self, form_list, **kwargs):
        return render(self.request, 'Return_to_AMT.html', {
            'form_data': [form.cleaned_data for form in form_list],            
        })
视图.py

url(r'^surveyone/$', SurveyWizardOne.as_view([
                                             SurveyFormIT1,
                                             SurveyFormIT2,
                                             Start,
                                             SurveyFormA, 
                                             SurveyFormB, 
                                             SurveyFormC, 
                                             SurveyFormD, 
                                             SurveyFormE,
                                             SurveyFormSpike1, 
                                             SurveyFormF1,
                                             SurveyFormF2,
                                             SurveyFormF3,
                                             SurveyFormDV1,
                                             SurveyFormF4,
                                             SurveyFormF5,
                                             SurveyFormF6,
                                             SurveyFormSpike2, 
                                             SurveyFormDV2,
                                             SurveyFormF7,
                                             SurveyFormF8,
                                             SurveyFormF9,
                                             SurveyFormDV3,
                                             SurveyFormDV4,
                                             SurveyFormDV5,
                                             SurveyFormG,
                                             SurveyFormH,
                                             SurveyFormI
                                             ])),  
class SurveyWizardOne(SessionWizardView):                             
    def get_context_data(self, form, **kwargs):
        context = super(SurveyWizardOne, self).get_context_data(form, **kwargs)                      
        step = int(self.steps.current)     



    ....
    ....


        return context 


    def done(self, form_list, **kwargs):
        return render(self.request, 'Return_to_AMT.html', {
            'form_data': [form.cleaned_data for form in form_list],            
        })
向导\u form.html

{% extends "base.html" %}
{% load i18n %}
{% block head %}
{{ wizard.form.media }}
{% endblock %}
{% block content %}


<div class="main_content">   

<p>Page: {{ wizard.steps.step1 }} of {{ wizard.steps.count }}</p>

<form action="/surveyone/" method="post">{% csrf_token %}
            <table>   
                {{ wizard.management_form }}
                    {% if wizard.form.forms %}
                        {{ wizard.form.management_form }}
                        {% for form in wizard.form.forms %}
                            {{ form }}
                        {% endfor %}
                    {% else %}
                        {{ wizard.form }}
                {% endif %}   
            </table>
{%extends“base.html”%}
{%load i18n%}
{%block head%}
{{wizard.form.media}
{%endblock%}
{%block content%}
页面:{{wizard.steps.step1}共{{wizard.steps.count}

{%csrf_令牌%} {{wizard.management_form} {%if wizard.form.forms%} {{wizard.form.management_form} {wizard.form.forms%中窗体的%s} {{form}} {%endfor%} {%else%} {{wizard.form} {%endif%}
由于您的表单提交到相同的url,您只需使用
action=“”
。如果愿意,可以使用
action=“/surveyone/”

如果不想在模板中硬编码url,则需要:

然后,可以在模板中使用标记:

action="{% url 'survey_one' %}"

感谢您确认我可以简单地使用
action=“
我以前使用过这个,但我认为它可能会导致我在另一个问题中强调的问题。关于命名URL模式的技巧也不错