Cụ thể, sau khi xác thực và chuyển hướng, request.user là một người dùng ẩn danh.Django: request.user không được đặt sau khi chuyển hướng
đăng nhập (xem chức năng)
def login(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
#django.contrib.auth.login
Login(request, form.get_user())
str = reverse('cm_base.views.index')
return HttpResponseRedirect(str)
else:
# Their password/email combination must have been incorrect
pass
else:
form = LoginForm()
return render_to_response('cm_base/login.html',
{"DEBUG": True,
'form' : form
},
context_instance=RequestContext(request))
trong giao diện chỉ mục, tôi loại bỏ các trang trí login_required và thử nghiệm các đối tượng request.user
def index(request):
test = request.user.is_authenticated()
return render_to_response('cm_base/index.html',
{"DEBUG": True,
"user": request.user,},
context_instance=RequestContext(request))
thử trả về false.
Fix
tôi đã kết thúc chỉ gọi quan điểm chỉ số trực tiếp. Tôi vẫn còn bối rối là tại sao đối tượng người dùng bị mất khi tôi gọi HttpResponseRedirect.
def login(request):
if request.method == 'POST':
form = LoginForm(request.POST) # Not shown in this example
if form.is_valid():
Login(request, form.get_user())
str = reverse('cm_base.views.index')
return index(request)
else:
# Their password/email combination must have been incorrect
pass
else:
form = LoginForm()
Thêm toàn bộ logic xem của bạn, không có cách nào để nói những gì hình thức của bạn và phương pháp đăng nhập giống từ đoạn bạn đã đăng. –
Liệu 'request.user.is_authenticated()' trả về TRUE trong chế độ xem đăng nhập sau khi bạn xác thực người dùng? – Rohan
Bạn có thể chia sẻ với chúng tôi hình thức và chế độ xem đăng nhập của bạn trong đoạn trích pastebin.com không? Cảm ơn bạn. –