Is possible to add GET variables in a redirect ? (Without having to modifiy my urls.py)
Tôi không biết cách nào để thực hiện việc này mà không cần sửa đổi urls.py
.
I don't have complains using HttpResponseRedirect('/my_long_url/%s/?q=something', x) instead, but just wondering...
Bạn có thể muốn viết một trình bao bọc mỏng để làm việc này dễ dàng hơn. Nói, custom_redirect
def custom_redirect(url_name, *args, **kwargs):
from django.core.urlresolvers import reverse
import urllib
url = reverse(url_name, args = args)
params = urllib.urlencode(kwargs)
return HttpResponseRedirect(url + "?%s" % params)
Điều này sau đó có thể được gọi từ chế độ xem của bạn. Ví dụ:
return custom_redirect('url-name', x, q = 'something')
# Should redirect to '/my_long_url/x/?q=something'
Nguồn
2010-09-22 05:04:19
typo nhỏ trong câu trả lời từ Manoj Govindan: params = urllib.urlencode (** kwargs) cần phải được thay thế với params = urllib.urlencode (kwargs) Nếu không, bạn nhận được "TypeError: urlencode() đã nhận được đối số từ khóa không mong muốn" – Max