Tôi đang cố gắng xây dựng một trang web đơn giản với chức năng đăng nhập rất giống với trang web ở đây trên SO. Người dùng sẽ có thể duyệt trang web dưới dạng người dùng ẩn danh và sẽ có một liên kết đăng nhập trên mỗi trang. Khi nhấp vào liên kết đăng nhập, người dùng sẽ được đưa đến biểu mẫu đăng nhập. Sau khi đăng nhập thành công, người dùng sẽ được đưa trở lại trang từ nơi anh ta nhấp vào liên kết đăng nhập ở vị trí đầu tiên. Tôi đoán rằng bằng cách nào đó tôi phải chuyển url của trang hiện tại sang chế độ xem xử lý biểu mẫu đăng nhập nhưng tôi thực sự không thể làm cho nó hoạt động được.
EDIT: Tôi đã tìm ra nó. Tôi đã liên kết với biểu mẫu đăng nhập bằng cách chuyển trang hiện tại dưới dạng tham số GET và sau đó sử dụng 'next' để chuyển hướng đến trang đó. Cảm ơn!
EDIT 2: Giải thích của tôi dường như không rõ ràng vì vậy được yêu cầu ở đây là mã của tôi: Hãy nói rằng chúng tôi đang ở trên một trang foo.html và chúng tôi không đăng nhập. Bây giờ chúng tôi muốn có một liên kết trên foo.html liên kết đó để đăng nhập.html. Ở đó chúng tôi có thể đăng nhập và sau đó được chuyển hướng trở lại foo.html. Liên kết trên foo.html trông như thế này:
<a href='/login/?next={{ request.path }}'>Login</a>
Bây giờ tôi đã viết một chế độ xem đăng nhập tùy chỉnh trông giống như thế này:
def login_view(request):
redirect_to = request.REQUEST.get('next', '')
if request.method=='POST':
#create login form...
if valid login credentials have been entered:
return HttpResponseRedirect(redirect_to)
#...
return render_to_response('login.html', locals())
Và dòng quan trọng trong login.html:
<form method="post" action="./?next={{ redirect_to }}">
Vì vậy, đó là khá nhiều nó, hy vọng rằng làm cho nó rõ ràng.