2016-10-09 4 views
2

申し訳ありませんが、これはノブの質問です。私はDjangoアプリのログインフォームを作成していますが、問題なく動作するようになっています。 request.POST.get()は何も返さないので、認証は常に失敗します。私は明白な何かを欠いていますかDjangoフォームリクエスト.POST.get()は常に空を返します

login.htmlと:

{% extends "base.html" %} 

{% block content%} 

<h2>Welcome! Please login to continue.</h2> <br> 
<form action="{% url 'account:authenticate' %}" method="post"> 
    {% csrf_token %} 
    <div > 
     <label for='username'> Username: </label> 
     <input type='text' name='Username' id='username'> <br><br> 
     <label for='password'>Password: </label> 
     <input type='password' name='Password' id='password'><br><br> 
     <input type='submit' value='Login'> 
    </div> 
</form> 

views.pyの関連部分:

from django.shortcuts import render, get_object_or_404 
from datetime import datetime 
from django.http import HttpResponse, Http404, HttpResponseRedirect 
from django.template import loader 
from random import randrange 
from django.contrib.auth import authenticate 

def login(request): 
    return render (request, 'login.html') 

def authenticate(request): 
    usern = request.POST.get('username', '') 
    passw = request.POST.get('password', '') 
    user = authenticate(username = usern, password = passw)  
    if user is not None: 
     authenticate.login(request, user) 
     return HttpResponseRedirect('/voters/instructions') 
    else: 
     return HttpResponseRedirect('/account/loginfail') 

def loginfail(request): 
    return render (request, 'loginfail.html') 

私はDjangoの1.10を使用しています。ありがとう!

答えて

2

フォームの入力フィールドで大文字と小文字が区別される名前を確認します。ジャンゴでこの

usern = request.POST.get('Username', '') 
passw = request.POST.get('Password', '') 

またはHTML形式で彼らがそれだった入力名フィールド

+0

を小文字にする操作を行います。ありがとうございました! – bfissa

関連する問題