2012-10-06 37 views
46

thể trùng lặp:
Django: Redirect to previous page after loginChuyển hướng/quay lại trang tương tự (trước) ở Django?

gì là những tùy chọn khi bạn muốn quay trở lại người dùng cùng một trang trong Django và những ưu/nhược điểm của từng là gì?

Phương pháp tôi biết:

  • HTTP_REFERER
  • tham số GET chứa URL trước
  • dữ liệu Session để lưu trữ các URL trước

Có bất kỳ khác?

+8

Các liên kết nói "sau khi đăng nhập". Tôi đã hỏi "sau khi đăng nhập"? Câu hỏi này có thể là một tổng quan thực sự của chủ đề này. Nó không xứng đáng -1, nó xứng đáng +1. Jeeez –

+2

trái với logic không khác với nhận hoặc đăng, nó chỉ là câu hỏi chuyển hướng không có sự tham gia của con và chuyên nghiệp cho đến khi bạn xác định một số lý do, câu hỏi của bạn rộng và không có nghiên cứu hoặc thử nghiệm thích hợp. –

+3

Nó rất khác nhau. Django đăng nhập và bình luận chuyển hướng được xây dựng in Câu hỏi của tôi là cho các trường hợp khác;) –

Trả lời

83

Một trong những cách được sử dụng HTTP_REFERER tiêu đề như như dưới đây:

from django.http import HttpResponseRedirect 

def someview(request): 
    ... 
    return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 

Không chắc chắn về nhược điểm của việc này!

+7

Tôi nghĩ con số lớn sẽ là sự thật mà nhiều người dùng/trình duyệt đã tắt http_referer. –

+3

Bạn có biết khó khăn khi tắt tiêu đề không? Hầu hết người dùng không biết nó là gì, hãy để một mình làm thế nào để tắt nó đi. Trong Firefox và Chrome, bạn phải chỉnh sửa lại tuỳ chọn_ theo cách thủ công (một lần nữa, không nhiều người biết cách thực hiện điều đó); trong IE bạn không thể vô hiệu hóa nó ở tất cả (nó bị vô hiệu hóa tự động cho các trang web bảo mật). –

+35

Tôi nghĩ rằng sẽ tốt hơn nếu chuyển hướng đến trang chính của trang web nếu request.META không được đặt: return HttpResponseRedirect (request.META.get ('HTTP_REFERER', '/')) – nickzam

4

Trong khi câu hỏi và câu trả lời là cũ, tôi nghĩ rằng nó thiếu một vài lựa chọn. Tôi đã không tìm thấy bất kỳ khuyết điểm với các phương pháp, tôi sẽ rất vui khi biết nếu có bất kỳ?

Các vấn đề liên quan