不知道您是否遇到任何问题,因为您没有提及任何问题,但是我将mongoengine用于身份验证后端,这就是我将如何处理的问题:
from django.contrib.auth import login, Userfrom mongoengine.queryset import DoesNotExistdef login_view(request): try: user = User.objects.get(username=request.POST['username']) if user.check_password(request.POST['password']): user.backend = 'mongoengine.django.auth.MongoEngineBackend' login(request, user) request.session.set_expiry(60 * 60 * 1) # 1 hour timeout return HttpResponse(user) else: return HttpResponse('login failed') except DoesNotExist: return HttpResponse('user does not exist') except Exception return HttpResponse('unknown error')您说用户未存储在请求中…如果您表示该用户在模板中不可用,则需要在设置中添加auth模板上下文处理器(除了已经设置的AUTHENTICATION_BACKENDS设置之外):
TEMPLATE_CONTEXT_PROCESSORS = ( ... 'django.contrib.auth.context_processors.auth', ...)
要使用户在登录后附加到后续请求,请设置
AuthenticationMiddleware和用户将成为
request您所有视图中的属性:
MIDDLEWARE_CLASSES = (... 'django.contrib.auth.middleware.AuthenticationMiddleware',...)



