Richtig <form action=" " URL für eine SessionWizardView
Ich habe einige Probleme immer ein Django SessionWizardView zum übermitteln von Daten in meine Datenbank, und ich versuche, das Problem zu isolieren.
I Hinweis aus der Form der Dokumentation
Sowie Ihre Elemente, die ein Formular angeben muss zwei Dinge:
- wo: die URL, an die die Daten entsprechend der Eingabe des Benutzers zurückgegeben werden soll,
- wie: die HTTP-Methode an die Daten, die zurückgegeben werden sollen, indem
und
Formular gesendete Daten zurück auf eine Django-Web-site werden von einer Ansicht,
in der Regel die gleiche Ansicht, die das Formular veröffentlicht. Dies ermöglicht es uns,
Wiederverwendung einige der gleichen Logik.
Derzeit bin ich mit <form action="/surveyone/" method="post">
was ich glaube ist richtig.
Das Problem ist, dass meine Ansicht aufgerufen wird class SurveyWizardOne(SessionWizardView):
aber wenn ich versuche, diese in den form action
bekomme ich eine Fehlermeldung, sobald ich auf Weiter klicken auf der ersten Seite der Umfrage.
Frage: auf der Grundlage der unten ist action="/surveyone/"
richtig?
Dank
urls.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
])),
views.py
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],
})
wizard_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>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Ihre form ist Sie sich der gleichen url können Sie einfach
action=""
. Wenn Sie es vorziehen, können Sieaction="/surveyone/"
Wenn Sie nicht wollen, zu fest die url in Ihrer Vorlage, dann müssen Sie name Ihrer url-Muster:
Dann können Sie die url tag in Ihrer Vorlage:
action=""
ich war mit diesem bisher aber dachte, es könnte die Ursache des Problem hob ich in der anderen Frage. Netter Tipp für die Benennung von URL-mustern zu