Tôi hiện đang sử dụng chức năng sau để có chế độ xem giới thiệu:
def get_referer_view(request, default=None):
referer = request.META.get('HTTP_REFERER')
if not referer:
return default
# remove the protocol and split the url at the slashes
referer = re.sub('^https?:\/\/', '', referer).split('/')
if referer[0] != request.META.get('SERVER_NAME'):
return default
# add the slash at the relative path's view and finished
referer = u'/' + u'/'.join(referer[1:])
return referer
Nếu tôi chuyển hướng view
là kết quả của logic lập trình, ví dụ ..
return HttpResponseRedirect('dashboard')
... có cách nào để có được chế độ xem giới thiệu mà không cần sử dụng HTTP_REFERER
để tôi có thể sử dụng biến đó trong chuyển hướng view
không? Điều này không phải lúc nào cũng được đặt trong các tiêu đề của trình duyệt.
Lưu ý vì các chế độ xem được chuyển hướng theo ngữ pháp, tôi không thể sử dụng POST để thu thập dữ liệu.
Có lẽ nó có thể thiết lập và lấy một tiêu đề tùy chỉnh bằng cách nào đó?
HttpResponseRedirect
không thực sự có lập trình - nó trả về phản hồi http 302 thực tế và buộc trình duyệt thực hiện yêu cầu mới đối với url mới của chế độ xem đang được chuyển hướng đến ...
?came_from=inbox
. Liên kết, Facebook, những người khác dường như làm điều đó, vì vậy nó nên được thực hành ok.