python - Django,形式 is_valid() 始终为 false

标签 python django

我正在学习 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/

相关文章:

Django - 生日 fildset 作为表单小部件

python - Ansible 和 jinja - 将双引号转义的 JSON 字符串发送到 AWS

python - python中 "cross-env"对应的是什么?

python - 计算任意(非二叉)树的高度

javascript - 通过javascript登录django

django - 使用 Apache 和 HTTPS 在 Linux 服务器上运行 Django

python - SVM 和随机森林,召回率 = 0

python - 为什么 numba 字典查找比 cpython 慢这么多?

python - 无法在 __init__ 处向 ModelForm 添加字段

python - admin.sites.url 密码传输