0
我在Django很新。我嘗試在註冊用戶之後創建一個自動登錄。但我失敗了。 我爲用戶名和密碼創建了一個自定義auth後端。Django的1.7「AnonymousUser」對象有沒有屬性「後臺」
class EmailBackend(object):
def authenticate(self, username=None, password=None):
user_cls = get_user_model()
try:
user = user_cls.objects.get(email=username)
if user.check_password(password):
return user
except user_cls.DoesNotExist:
return None
def get_user(self, user_id):
user_cls = get_user_model()
try:
return user_cls.objects.get(pk=user_id)
except user_cls.DoesNotExist:
return None
AUTHENTICATION_BACKENDS = (
'user.back_auth.EmailBackend',
'django.contrib.auth.backends.ModelBackend',
)
我儘量讓自動登錄註冊後用戶:
def register(request):
if request.method == 'POST':
user_form = UserForm(request.POST)
if user_form.is_valid():
user = user_form.save()
messages.info(request, "Thanks for registering. You are now logged in.")
user = authenticate(username=request.POST['username'],
password=request.POST['password'])
login(request, user)
return HttpResponseRedirect("/")
else:
user_form = UserForm()
return render(request,
'user/register.html',
{'user_form': user_form })
但是,我得到了下:
AttributeError的在/用戶/註冊/ 'AnonymousUser'對象有沒有屬性「後臺」
你有或者你可以在任何用戶窗體'save'方法確保用戶被創建或什麼?還要告訴密碼看起來如何(明文或散列)? –
我在UserForm中沒有其他保存方法。並且密碼是明文 –
爲什麼你甚至有自定義auth後端?它沒有做任何不同於標準的東西。 –