exf*_*zik 2 django django-views
在我的Django网站中,我有一个要通过url或查询字符串设置的特定参数。例如mysite.com/?param=value。我希望此值一经设置就传递给所有视图-我可以使用进行检查request.GET.get('param', 'default value')。在Django中最简单的方法是什么?
为了更加清楚,这是一个示例-在我网站的标题中,我有一个带有年份列表的下拉菜单。当我单击其中一个选项时,我希望今年继续使用到网站的其他所有部分,即mysite.com/?year=1999,然后是mysite.com/somethingelse/?year=1999,mysite.com/onemorething/?year=1999依此类推。提前致谢。
一种选择是将其存储在中,request.session而不是存储在中request.GET。仍将按照您希望的那样进行设置和访问:
request.session["param"] = "my value"
request.session.get('param', 'default value')
Run Code Online (Sandbox Code Playgroud)
有关使用会话的所有详细信息,请参见此处。
例外情况是,如果您特别希望在URL中使用它,以便它是透明的并且用户可以更改它。
预计到达时间:您的问题的一些答案:
如果您确实希望?year = 1999 URL在任何视图中设置会话变量,则可以创建一个自定义的中间件类。中间件充当过滤器,可以在到达视图之前更改HttpRequest,或更改从视图返回的HttpResponse。在这种情况下,您可以让它在执行视图之前检查request.GET并根据需要设置request.session。请参阅文档,并确保阅读有关中间件的详细信息。
将其包含在URL中并不是一个好主意。有很多解决方法,但是麻烦很多。
您可以使用RequestContext的来请求传递给模板,并在那里修改。但是,为什么在地球上而不是在视图函数中这样做呢?
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |