2013-07-08 1 views
0

현재 내 자신의 사용자 정의 Django 로그인 페이지를 만들고 있습니다. 여기 내이다 :사용자 정의 장고 로그인 'OK'

def login_poster(request): 
    state = "Verified Posters, please login below..." 
    username = password = '' 
    if request.POST: 
     username = request.POST.get('username') 
     password = request.POST.get('password') 

     user = authenticate(username=username, password=password) 
     if user: 
        if user.is_active: 
       login(request, user) 
       state = "You're successfully logged in!" 
      else: 
       state = "You must have a verified Poster account to login." 
     else: 
      state = "Your username and/or password were incorrect." 
    return render_to_response('poster_login.html',{'state':state, 'username': username}) 

이 내 템플릿입니다 : 어떤 이유

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<title>Log in</title> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<style> 
body{ 
    font-family:Arial,Helvetica,sans-serif; 
    font-size: 12px; 
} 
</style> 
</head> 
<body> 
{{ state }} 
<form action="/login/" method="post"> 
    {% if next %} 
    <input type="hidden" name="next" value="{{ next }}" /> 
    {% endif %} 
    username: 
    <input type="text" name="username" value="{{ username}}" /><br /> 
    password: 
    <input type="password" name="password" value="" /><br /> 

    <input type="submit" value="Log In" /> 
</form> 

, 내가 잘못된 사용자 이름 및 암호 또는 올바른 사용자 이름과 암호를 사용하여 로그인 할 때마다 빈 입력란을 사용하면 브라우저에 다음과 같은 응답이 표시됩니다.

OK 

내가 입력 한 내용에 상관없이 OK가 계속 표시됩니다. 자격 증명이 유효하지 않은지 확인하지 않습니다. http://solutoire.com/2009/02/26/django-series-1-a-custom-login-page/

가 어떻게이 고정에 대해 갈 수있다 : 나는 분야에 상관없이 무엇이든의 제출 누른 후, 아직

내가이 튜토리얼을 따라 'OK'반환?

답변

1

왜 확인 페이지가 표시되는지 잘 모르겠습니다. 그러나, 나는 "에는 render_to_response을"교체 "렌더링"로 코드를 사용 :

그리고와 "

가 ({: : 주, '사용자 이름'사용자 이름 '상태'} 요청, 'poster_login.html을') 렌더링 템플릿에서 csrf_token "

{%의 csrf_token의 %} ... 이렇게

내 설정에 대한 예상 결과를 제공합니다.

+0

@GeorgeOctavianRavanc 나는 길을 내줄 것입니다. 어디에서 csrf_token을 배치 했습니까? – noahandthewhale

+0

양식 태그 안에 csrf_token을 추가해야합니다.

{% csrf_token %} .....