使用 django.shortcuts.redirect 添加 request.GET 变量
是否可以在重定向中添加 GET 变量? (无需修改我的 urls.py)
如果我执行 redirect('url-name', x)
我会得到 HttpResponseRedirect('/my_long_url/%s/', x)
code>
我没有抱怨使用 HttpResponseRedirect('/my_long_url/%s/?q=something', x)
代替,但只是想知道......
Is possible to add GET variables in a redirect ? (Without having to modifiy my urls.py)
If I do redirect('url-name', x)
I get HttpResponseRedirect('/my_long_url/%s/', x)
I don't have complains using HttpResponseRedirect('/my_long_url/%s/?q=something', x)
instead, but just wondering...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
由于重定向仅返回一个 HttpResponseRedirect 对象,因此您可以更改它:
Since redirect just returns an
HttpResponseRedirect
object, you could just alter that:我不知道有什么方法可以在不修改
urls.py
的情况下执行此操作。您可能想编写一个薄包装器来使这更容易。比如说,
custom_redirect
然后可以从您的视图中调用它。例如
I don't know of any way to do this without modifying the
urls.py
.You might want to write a thin wrapper to make this easier. Say,
custom_redirect
This can then be called from your views. For e.g.
我们可以从 django 导入 urlencode。
或者我们可以只使用启动请求中未解析的获取参数字符串
We can import urlencode from django.
Or we can just use unparsed get parameters string from starting request
我认为值得注意的是,Django 的
RedirectView
类有一个内置的类属性query_string
,可以覆盖或传递给as_view
。如果设置为True
,query_string
将在重定向中保留查询字符串。例如,您可以将以下内容放入urls.py
中:I think it's worth noting that Django's
RedirectView
class has a built-in class attributequery_string
which can be overridden or passed toas_view
. If set toTrue
,query_string
will preserve the query string in the redirect. For example, you could put the following inurls.py
: