好的,所以我試圖用Django創建一個日誌。Python - Django - activate()返回無
從views.py:
from django.shortcuts import *
from forms import UserRegistrationForm
from django.contrib.auth import authenticate, login
from django.core.mail import send_mail
from django.conf import settings
import pprint
import utils
import models
from django.http import HttpResponse
import views
from django.conf.urls import patterns, url
def login_user(request):
state = "Please log in below..."
username = password = ''
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if not user.is_verified:
state = "Please check your e-mail to verify your account."
elif user.is_active:
login(request, user)
state = "You're successfully logged in!"
else:
state = "Your account is not active, please contact the site admin."
else:
state = "Your username and/or password were incorrect."
return render_to_response('myapp/dashboard.html', {'state': state}, RequestContext(request))
else:
return render_to_response('myapp/login.html', RequestContext(request))
我的登錄模板(login.html的):
<h3>Login</h3><hr />
<form action="/login/" method="post">
{% csrf_token %}
{% 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 class="btn" type="submit" value="Log In" />
</form>
我使用的是基本的SQLite3把一切想通了。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'tempDB'
}
}
當我登錄到我的管理站點我看到的用戶:
用戶名:尼克 密碼:蟒蛇manage.py執行syncdb沒有問題
從settings.py運行散列版本的暱稱
當我插入一箇中斷(使用PBD)時,我能夠看到該應用程序通過login_user視圖。
> ...myapp/myapp/views.py(52)login_user()
-> state = "Please log in below..."
(Pdb) n
> ...myapp/myapp/views.py(53)login_user()
-> username = password = ''
(Pdb) print username
*** NameError: name 'username' is not defined
(Pdb) n
> ...myapp/myapp/views.py(55)login_user()
-> if request.POST:
(Pdb) print username
(Pdb) n
> ...myapp/myapp/views.py(56)login_user()
-> username = request.POST.get('username')
(Pdb) print username
(Pdb) n
> ...myapp/myapp/views.py(57)login_user()
-> password = request.POST.get('password')
(Pdb) print username
nick
(Pdb) n
> ...myapp/myapp/views.py(59)login_user()
-> user = authenticate(username=username, password=password)
(Pdb) print password
nick
(Pdb) n
> ...myapp/myapp/views.py(61)login_user()
-> if user is not None:
(Pdb) print user
None
這表明它獲取用戶名「缺口」和密碼「尼克」(我設置的帳號了的設置),但是我遇到的問題是身份驗證時仍然返回無這意味着什麼設置不正確/無法正常工作。
是login_user後查看「國家」輸出「您的用戶名和/或密碼不正確。」正如告訴做的views.py
我將不勝感激,如果有人能夠幫助我!
實現自己的登錄頁面之前,你有沒有嘗試過使用內置的登錄頁面和測試。它的工作原理? https://docs.djangoproject.com/en/1.5/topics/auth/default/#module-django.contrib.auth.views – Thomas