我正在学习 Django,但在表单方面遇到了一些问题。我尝试创建一个简单的表单,在其中输入名称并将其显示在另一个页面上。但 is_valid() 总是返回 false。请帮我找出错误
forms.py
from django import forms
class OrderForm(forms.Form):
user=forms.CharField(max_length=100)
views.py
def order(request):
return render(request, 'myapp/order.html', {})
def contact(request):
username='not logged'
if request.method == 'POST' :
form=OrderForm(request.POST)
if form.is_valid():
username=form.cleaned_data['username']
else:
username='not worked'
else:
form=OrderForm()
return render(request, 'myapp/contacts.html', {'username':username})
order.html
<form name = "form" action = "{% url 'contact' %}" method = "POST" >
{% csrf_token %}
<input type="text" name="username" placeholder="Name">
<button type="submit">Login</button>
</form>
contacts.html
You are : <strong>{{ username }}</strong>
最佳答案
您的表单控件在 HTML 中的名称为 username
,而您的表单字段在 Django 中的名称为 user
。因此,表单字段中未设置任何内容。
通常,您会将表单放入上下文中,然后将其呈现为 {{ form }}
或类似内容,或者呈现每个字段,而不是构建自己的表单控件。文档显示了如何操作:https://docs.djangoproject.com/en/1.10/topics/forms/#working-with-form-templates
关于python - Django,形式 is_valid() 始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619914/