Python Django-用户身份验证错误(Django.contrib.auth)

Python Django-用户身份验证错误(Django.contrib.auth),python,django,django-views,django-authentication,django-users,Python,Django,Django Views,Django Authentication,Django Users,下面我创建了一个简单的登录页面。但当我提交登录信息时,Python中出现以下异常: 回溯(最近一次呼叫最后一次): 文件“/home/jirka/miniconda3/envs/molinf/lib/python3.5/site packages/django/core/handlers/base.py”,第149行,在get_响应中 response=self.process\u异常\u由\u中间件(e,请求) 文件“/home/jirka/miniconda3/envs/molinf/lib

下面我创建了一个简单的登录页面。但当我提交登录信息时,Python中出现以下异常:

回溯(最近一次呼叫最后一次):
文件“/home/jirka/miniconda3/envs/molinf/lib/python3.5/site packages/django/core/handlers/base.py”,第149行,在get_响应中
response=self.process\u异常\u由\u中间件(e,请求)
文件“/home/jirka/miniconda3/envs/molinf/lib/python3.5/site packages/django/core/handlers/base.py”,第147行,在get_响应中
响应=包装的回调(请求,*回调参数,**回调参数)
文件“/home/jirka/molinf/02 database/moldb/views.py”,第100行,登录
登录(用户)
文件“/home/jirka/molinf/02 database/moldb/views.py”,第94行,登录
如有要求,请发送:
AttributeError:“User”对象没有属性“POST”

这是我的密码:
URL.py中的URL
url(r'^login$',moldb.views.login,name='login')

views.py中的登录视图:

def login(request):
    print(request, type(request))
    logout(request)

    if request.POST:
        username = request.POST['username']
        password = request.POST['password']

        user = authenticate(username=username, password=password)
        if user is not None and user.is_active:
            login(user)
            return HttpResponseRedirect('/')

    return render(request, "login.html")
Login.html
中的登录表单:

<form class="form-horizontal" name="LoginForm" action="{% url 'login' %}" method="post">
    {% csrf_token %}
    {% if next %}
        <input type="hidden" name="next" value="{{ next }}" />
    {% endif %}
    <div class="control-group">
        <label class="control-label" for="username">Username</label>
        <div class="controls">
        <input type="text" id="username" name="username" placeholder="Username">
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="password">Password</label>
        <div class="controls">
        <input type="password" name="password" id="password" placeholder="Password">
        </div>
    </div>
    <div class="control-group">
        <div class="controls">
        <button type="submit" class="btn">Login</button>
        </div>
    </div>
</form>

hanicka
是经过身份验证的用户的用户名(我通过登录表单发送的用户名)很明显,异常来自于此,但是此视图如何执行两次,以及
用户
模型如何到达这里

我对Django不熟悉,也缺少一些背景知识,但只要看看您的代码、您遵循的示例和Django文档,我很好奇,如果您选择了不同的
登录
函数名称来:

def login_user(request):

以防命名冲突…

我不熟悉Django,也缺少一些上下文,但只要看看您的代码、您遵循的示例和Django文档,我很好奇如果您选择了不同的
登录
函数名称来:

def login_user(request):

以防出现命名冲突…

非常感谢!我决不会想到这一点。有时我还应该遵循教程中的命名:)您也可以更改django的
登录名
函数名:
从django.contrib.auth导入登录名为user\u login
@ahmed是的,这一点现在很明显,但我不想仅仅为了干净而更改导入命名。非常感谢!我决不会想到这一点。有时我还应该遵循教程中的命名:)您也可以更改django的
登录名
函数名:
从django.contrib.auth导入登录名为user\u login
@ahmed是的,这一点现在很明显,但我不想仅仅为了干净而更改导入命名。@jotik您已经做了很多编辑,具有从帖子中编辑出“地狱”的共同特征。虽然您的一些编辑是实质性的和建设性的,但在某些情况下,例如这一次,您忽略了明显的问题,只删除了“地狱”。我可以理解,你觉得这个表达很强,但是请考虑这不是被大多数用户认为是粗鲁的,而且多余的编辑这样对社区是不有益的。这篇有着2周多被接受答案的帖子被无缘无故地推到了头版。请重新考虑你的行为。@AndrasDeak好的,谢谢!我不知道这些会被碰撞。@jotik你已经做了很多编辑,其共同特点是从帖子中编辑出“地狱”。虽然您的一些编辑是实质性的和建设性的,但在某些情况下,例如这一次,您忽略了明显的问题,只删除了“地狱”。我可以理解,你觉得这个表达很强,但是请考虑这不是被大多数用户认为是粗鲁的,而且多余的编辑这样对社区是不有益的。这篇有着2周多被接受答案的帖子被无缘无故地推到了头版。请重新考虑你的行为。@AndrasDeak好的,谢谢!我不知道这些被撞坏了。