我正在學習Django 1.11,我正在用widget_tweaks工具創建表單。if form.is_valid()always false
我有一個變量「代碼」,應該通知模板,如果表單是否發送。 如果它不發送,代碼= 1的形式顯示 如果顯示的形式,我只是想顯示另一種形式(目前未開發)
的問題是,代碼總是= 1
爲什麼?
非常感謝
view.py
#-*- coding: utf-8 -*-
from django.shortcuts import render
from .forms import MinimumRegisterForm
# Create your views here.
def view_about(request):
\t return render(request, 'about.html', locals())
def view_first(request):
\t return render(request, 'first.html', locals())
def view_second(request):
\t form = MinimumRegisterForm()
\t if request.method == 'POST':
\t \t form = MinimumRegisterForm(request.POST)
\t \t if form.is_valid():
\t \t \t identifiant = form.cleaned_data['identifiant']
\t \t \t email = form.cleaned_data['email']
\t \t \t password = form.cleaned_data['password']
\t \t \t confirm_password = form.cleaned_data['confirm_password']
\t \t \t code = "2"
\t else:
\t \t code = "1"
\t \t return render(request, 'second.html', locals())
\t return render(request, 'second.html', locals())
HTML模板
<div class="inner cover">
<h1 class="cover-heading">Parlons un peu de vous ...</h1>
<div class="MinimumRegisterForm">
{% if form.errors %}
Les erreurs suivantes sont survenues:
{{ form.errors }}
{% endif %}
{% if code == "1" %}
<form action="{% url 'second' %}" action="POST">
{% csrf_token %}
<p>{{ form.identifiant|add_class:"form-control"|attr:"placeholder:Quel sera votre identifiant unique ?" }}</p>
<p>{{ form.email|add_class:"form-control"|attr:"placeholder:Indiquez-y votre email !" }}</p>
<p>{{ form.password|add_class:"form-control"|attr:"placeholder:Créer votre mot de passe ici." }}</p>
<p>{{ form.confirm_password|add_class:"form-control"|attr:"placeholder:Retaper votre mot de passe." }}</p>
<input class="btn btn-lg btn-primary" type="submit" value="Continuer">
</form>
{% elif code == "2" %}
<p>Formulaire suivant</p>
{% endif %}
{{ code }}
</div>
</div>
Forms.py
from django import forms
class MinimumRegisterForm(forms.Form):
identifiant = forms.CharField(
max_length=50,
label="Choisissez un identifiant unique",
)
email = forms.EmailField(
label="Votre adresse mail",
)
password = forms.CharField(
widget=forms.PasswordInput,
label="Entrer un mot de passe",
)
confirm_password = forms.CharField(
widget=forms.PasswordInput,
label="Confirmer votre mot de passe",
)
任何'form.errors'?.. – Sayse
對不起,我是在Django一個小白,我真的不知道什麼是form.errors ... – GrandGTO
@GrandGTO我已經更新了我的答案 – doru