Python Django 1.9 form.is_valid()返回false

Python Django 1.9 form.is_valid()返回false,python,django,django-forms,Python,Django,Django Forms,我试图从django自己的用户模型中验证用户名和密码。POST请求有效,forms.py有什么问题吗 views.py from django.shortcuts import render,get_object_or_404 from django.http import HttpResponse from .forms import LoginForm from django.contrib.auth import authenticate, login as auth_login def

我试图从django自己的用户模型中验证用户名和密码。POST请求有效,forms.py有什么问题吗

views.py

from django.shortcuts import render,get_object_or_404
from django.http import HttpResponse
from .forms import LoginForm
from django.contrib.auth import authenticate, login as auth_login

def login(request):
    msg = "Login"
    if (request.method == "POST"):

        form = LoginForm(request.POST or None)
        msg = "post"
        if form.is_valid():
            msg = "valid"

    context = {
        "msg":msg,
    }

    return render(request, "login.html", context)
forms.py

from django import forms
from django.contrib.auth.models import User

class LoginForm(forms.ModelForm):
    class Meta:
        model = User
        fields = [
            "username",
            "password"
        ]
Login.html

<div class="container">
        {% if user.is_authenticated %}
            blablabla
        {% else %}
        <div class="row">
            <div class="col-md-6" style="background-color: lightblue">
                <h1 style="color:red">{{ msg }}</h1>
                <form method="POST" action="">{% csrf_token %} 
                    acronym<input type="acronym" name="acronym">
                    password<input type="password" name="password">
                <input type="submit" value="Login">
                </form>
            </div>
        {% endif %}

{%if user.u经过身份验证%}
喋喋不休
{%else%}
{{msg}}
{%csrf_令牌%}
缩略语
密码
{%endif%}

编辑添加了login.html文件

表单不在您的上下文中,也没有为get请求实例化

从尝试这样的事情开始

def login(request):
    msg = "Login"
    form = LoginForm()

    if (request.method == "POST"):

        form = LoginForm(request.POST or None)
        msg = "post"
        if form.is_valid():
            msg = "valid"

    context = {
        "form": form,
        "msg":msg,
    }

    return render(request, "login.html", context)
通过这种方式,您可以检查模板中的
{{form.errors}}
,查看出了什么问题

目前,如何在
login.html
中呈现表单?您是否在表单中使用字段上的循环

<form class="form" action="" method="POST">

    {% if form.non_field_errors or form.errors %}
        <div class="error-list-block">
            <p>
                Please correct the errors below - Ensure all required fields
                are completed.
            </p>
            <ul>
                {% for error in form.non_field_errors|add:form.errors %}
                    <li>{{ error }}</li>
                {% endfor %}
            </ul>
        </div>
    {% endif %}

    {% csrf_token %}
    {% for field in form %}
        {% if field.is_hidden %}
            {{ field }}
        {% else %}

{%if form.non_字段_错误或form.errors%}

请更正以下错误-确保所有必填字段
全部完成。

    {form.non_field_errors{add:form.errors%}
  • {{error}}
  • {%endfor%}
{%endif%} {%csrf_令牌%} {%形式的字段为%} {%if field.is_hidden%} {{field}} {%else%}
我不知道,它是否会给您带来任何错误?它有用吗?这是测试吗?请尝试打印/记录
form.errors
以查看表单无效的原因。form.errors=无问题什么是
是的,谢谢@JohnGordon is应该是用户名!:p login.html在主题中,我刚刚制作了一个常规表单。编辑它与我的html代码现在工作。谢谢