使用django.shortcuts.redirect添加request.GETvariables
有可能在redirect中添加GETvariables? (无需修改我的urls.py)
如果我做redirect('url-name', x)
我得到HttpResponseRedirect('/my_long_url/%s/', x)
我没有抱怨使用HttpResponseRedirect('/my_long_url/%s/?q=something', x)
,而只是想知道…
有可能在redirect中添加GETvariables? (无需修改我的urls.py)
我不知道有什么办法做到这一点, 而不修改urls.py
我没有抱怨使用HttpResponseRedirect('/ my_long_url /%s /?q = something',x),而只是想知道…
你可能想写一个薄包装,使这更容易。 说, 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)
这可以从你的意见中调用。 例如
return custom_redirect('url-name', x, q = 'something') # Should redirect to '/my_long_url/x/?q=something'
由于redirect只是返回一个HttpResponseRedirect
对象,你可以改变它:
response = redirect('url-name', x) response['Location'] += '?your=querystring' return response