2011-11-30 34 views
11

Tôi sẽ cung cấp thông tin từng bước.Cách nhận url trước đó trong django

Giả sử chúng ta đang ở trong trang giới thiệu, url là sample.com/about. Có một nút email cho bạn bè, khi được nhấp, url là sample.com/emailafriend. Sau đó, khi tôi nhấp vào nút gửi, url giới thiệu sẽ được gửi là sample.com/emailafriend. Câu hỏi, làm thế nào để có được url trang về? BTW, tôi đang sử dụng request.META['HTTP_REFERER'].

Trả lời

10

Bạn có thể làm việc với các request path attribute và thêm rằng thuộc tính hành động của mẫu của bạn, như vậy:

<form method="post" action="/tell-a-friend?return_url={{ request.path }}"> 
... 
</form> 

Sau đó, theo quan điểm Tell-a-bạn của bạn, HttpResponseRedirect tới tham số return_url truy vấn.

+0

Đó chắc chắn là một cách tiếp cận tốt sẽ gắn với chuyển hướng. –

1

Có vẻ như bạn đang sử dụng APPEND_SLASH sẽ thực hiện chuyển hướng nếu bạn không có dấu gạch chéo. Hãy thử thay đổi liên kết nút thành sample.com/emailafriend/, lưu ý dấu gạch chéo kết thúc.

+0

theo https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest. META –

+0

Tôi đã sử dụng yêu cầu đó. Nhưng khi bạn nhấp vào nút gửi, trang giới thiệu đã là sample.com/emailafriend, không phải là về nữa. – david

+0

Tôi vừa cập nhật câu trả lời của mình. –

0

Có thể chỉ cần gửi sample.com/about làm tham số GET hoặc POST? Hoặc thậm chí thông qua phiên.

1

Và nếu bạn nhận được một request biến trống trong mẫu, kiểm tra this post

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