我希望Django有一个内置的方式来获取应用程序本身访问的最后一个URL.当我写这篇文章时,我意识到做这样的事情有一些复杂性(例如,不包括重定向的页面),但我想我会试一试.
如果没有内置功能,您会采用什么策略?我的意思不仅仅是在会话中手动存储URL并在重定向时引用它.当然,这会起作用,但我讨厌必须记住为每个视图都这样做.似乎容易出错并且不是很优雅.
哦,我宁愿不依赖于服务器特定的推荐环境变量.
不,没有像Django核心内置的那样(并且它不是内置的,因为它不是常见的使用模式).
就像Javier建议的那样,你可以制作一些能够满足你想要的中间件.像这样的东西:
class PreviousURLMiddleware(object):
def process_response(request, response):
if response.status_code == 200:
request.session['previous_url'] = request.get_full_url()
return response
Run Code Online (Sandbox Code Playgroud)
该中间件会去后 SessionMiddleware在你的设置,以确保该会议将在此之后被更新(的文档有一个漂亮的图片解释这是为什么).
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |