Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django formtools,在表单步骤之间保存数据_Django_Django Formtools - Fatal编程技术网

django formtools,在表单步骤之间保存数据

django formtools,在表单步骤之间保存数据,django,django-formtools,Django,Django Formtools,我正在尝试使用创建多步骤表单向导。我有一个名为Report的主模型和几个模型表单,如下所示: class ReportFormP1(forms.ModelForm): class Meta: model = Report fields = [ 'company', 'address_line_1', 'address_line_2', 'responsible

我正在尝试使用创建多步骤表单向导。我有一个名为
Report
的主模型和几个模型表单,如下所示:


class ReportFormP1(forms.ModelForm):
    class Meta:
        model = Report
        fields = [
            'company',
            'address_line_1',
            'address_line_2',
            'responsible_person',
            'person_consulted',
            'assessor_name',
            'previous_assessment_date',
            'review_date',
        ]


# section 1
class ReportFormP2(forms.ModelForm):
    class Meta:
        model = Report
        fields = [
            "premise_num_floors",
            "premise_floor_area",
            "premise_occupancy",
            "premise_occupancy_comments",
        ]

{% extends '_base.html' %}
{% load static %}
{% load i18n %}
{% load crispy_forms_tags %}

<!-- templates/home.html -->
{% load socialaccount %}

{% block title %}Create a report{% endblock title %}

{% block extra_css %}
    {{ wizard.form.media }}
{% endblock extra_css %}

{% block content %}
<div class="container">
    <h1>Create a report</h1>

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

    <form action="" method="post">
        {% csrf_token %}
        {{ wizard.management_form }}

        {% if wizard.form.forms %}
            {{ wizard.form.management_form }}
            {% for form in wizard.form.forms %}
                {{ form|crispy }}
            {% endfor %}
        {% else %}
            {{ wizard.form|crispy }}
        {% endif %}

        <div class="text-center">
            {% if wizard.steps.prev %}
            <button class="btn btn-lg btn-warning" name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}" formnovalidate>{% trans "first step" %}</button>
            <button class="btn btn-lg btn-primary" name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}" formnovalidate>{% trans "prev step" %}</button>
            {% endif %}
            {% if wizard.steps.next %}
                <button class="btn  btn-lg btn-primary" name="wizard_goto_step" type="submit" value="{{ wizard.steps.next }}">{% trans "next step" %}</button>
            {% endif %}

            <input class="btn btn-lg btn-success" type="submit" name="Submit" value="Create report">

        </div>

    </form>

    <hr>
    <hr>

</div>

{% endblock content %}

    path('create_report2', ReportWizardView.as_view(), name="report_create2"),

在我的视图中,我创建了以下视图:

类报告向导视图(SessionWizardView): 模板名称='reporting/report\u create2.html' 表单列表=[ReportFormP1,ReportFormP2]

def done(self, form_list, **kwargs):
    return render(self.request, 'done.html', {
        'form_data': [form.cleaned_data for form in form_list],
    })
我的相关模板如下所示:


class ReportFormP1(forms.ModelForm):
    class Meta:
        model = Report
        fields = [
            'company',
            'address_line_1',
            'address_line_2',
            'responsible_person',
            'person_consulted',
            'assessor_name',
            'previous_assessment_date',
            'review_date',
        ]


# section 1
class ReportFormP2(forms.ModelForm):
    class Meta:
        model = Report
        fields = [
            "premise_num_floors",
            "premise_floor_area",
            "premise_occupancy",
            "premise_occupancy_comments",
        ]

{% extends '_base.html' %}
{% load static %}
{% load i18n %}
{% load crispy_forms_tags %}

<!-- templates/home.html -->
{% load socialaccount %}

{% block title %}Create a report{% endblock title %}

{% block extra_css %}
    {{ wizard.form.media }}
{% endblock extra_css %}

{% block content %}
<div class="container">
    <h1>Create a report</h1>

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

    <form action="" method="post">
        {% csrf_token %}
        {{ wizard.management_form }}

        {% if wizard.form.forms %}
            {{ wizard.form.management_form }}
            {% for form in wizard.form.forms %}
                {{ form|crispy }}
            {% endfor %}
        {% else %}
            {{ wizard.form|crispy }}
        {% endif %}

        <div class="text-center">
            {% if wizard.steps.prev %}
            <button class="btn btn-lg btn-warning" name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}" formnovalidate>{% trans "first step" %}</button>
            <button class="btn btn-lg btn-primary" name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}" formnovalidate>{% trans "prev step" %}</button>
            {% endif %}
            {% if wizard.steps.next %}
                <button class="btn  btn-lg btn-primary" name="wizard_goto_step" type="submit" value="{{ wizard.steps.next }}">{% trans "next step" %}</button>
            {% endif %}

            <input class="btn btn-lg btn-success" type="submit" name="Submit" value="Create report">

        </div>

    </form>

    <hr>
    <hr>

</div>

{% endblock content %}

    path('create_report2', ReportWizardView.as_view(), name="report_create2"),

我的问题是,当我单击
next
,然后单击
previous
(表单有效)时,表单步骤没有保存。贝娄就是一个例子

加载的第一个表单:

单击“下一步”后:

现在,当我单击“上一步”时,一切都消失了:

我想知道我错过了什么