簡體   English   中英

Django-用戶身份驗證錯誤(django.contrib.auth)

[英]Django - user authentification error (django.contrib.auth)

在學習完本教程之后,我創建了一個簡單的登錄頁面。 但是當我提交登錄信息時,Python中出現以下異常:

Traceback (most recent call last): File "/home/jirka/miniconda3/envs/molinf/lib/python3.5/site-packages/django/core/handlers/base.py", line 149, in get_response response = self.process_exception_by_middleware(e, request) File "/home/jirka/miniconda3/envs/molinf/lib/python3.5/site-packages/django/core/handlers/base.py", line 147, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/jirka/molinf/02-database/moldb/views.py", line 100, in login login(user) File "/home/jirka/molinf/02-database/moldb/views.py", line 94, in login if request.POST: AttributeError: 'User' object has no attribute 'POST'

這是我的代碼:

urls.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>

我發現提交表單后,在views.py print(request, type(request))輸出如下:

<WSGIRequest: POST '/login'> <class 'django.core.handlers.wsgi.WSGIRequest'>
hanicka <class 'django.contrib.auth.models.User'>

hanicka是經過身份驗證的用戶的用戶名(我通過登錄表單發送的用戶名)。 很明顯,異常是由此產生的,但是該視圖如何執行兩次, User模型如何到達這里?

我不熟悉Django,並且缺少一些上下文,但是僅查看您的代碼,您遵循的示例和Django文檔,我很好奇如果您選擇其他login函數名稱會發生​​什么情況:

def login_user(request):

以防萬一命名沖突...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM