,我讓一個用戶註冊,由於下面的代碼:的Django只能登錄殼創建的用戶
def sign_up(request):
if request.POST:
userName = request.POST.get('username')
passWord = request.POST.get('password')
user = User.objects.create_user(username=userName, password=passWord)
user.save()
return HttpResponseRedirect(reverse('account:login'))
args = {}
args.update(csrf(request))
args['form'] = UserCreationForm()
return render_to_response('account/sign_up.html', args, context_instance=RequestContext(request))
模板:
{% extends "base_login.html" %}
{% load staticfiles %}
<div id="sign_up"> {% block extension1 %}
<form action="/account/sign_up/" method="post"> {% csrf_token %}
{{ form }} <br/>
<input type="submit" value="Sign up"/>
</form> {% endblock %}
</div>
用戶被創建。我可以在數據庫中看到這一點。但是,按照這種方式,這個新創建的用戶將不會登錄。雖然,用戶在shell中創建相同的方式將能夠登錄。我嘗試了很多,發現:
users_able.password
'pbkdf2_sha256$12000$CczM6MmFkTrj$qA1QG7O4nBSSOh6...'
users_unable.password
'!KAXKN25DPijEmzj0TcrhpHYpyB1pLhue...'
所以我想這與密碼設置不正確有關。對?我使用默認的UserCreationForm進行註冊。有任何想法嗎?
你能後的'UserCreationForm'? – pcoronel
不知道如何,這是Django的內置 – Johngoldenboy
你可以刪除user.save() - 這是多餘的。 create_user,創建並保存用戶。另外,是否有你使用render_to_response而不是渲染的原因?你在什麼版本的Django上? – user2734679