我正在谷歌应用引擎上进行Django项目。我有一个类似的URL:
http://localhost:8080/[company]/projects/project
注意,[company]
是在我的urls.py中定义的URL参数,类似于:
(r'(^[a-zA-Z0-9-_.]*)/projects/project/(d*)', 'projects.views.project_form'),
我想从中间件中获得[company]
的值,在中间件中我将把GAE数据存储命名空间设置为[company]
的值。
是否可以从中间件类的process_request
方法中传递的请求对象中获取[company]
参数?
如果您使用process_view
中间件,您将可以访问视图参数,从而访问公司价值。看看函数的定义:
def process_view(self, request, view_func, view_args, view_kwargs)
...
view_args是将传递给视图的位置参数的列表,而view_kwargs则是将传递到视图的关键字参数的字典。
所以你应该能够从那里抓住它,比如:
def process_view(self, request, view_func, view_args, view_kwargs):
company = view_kwargs.get('company', None)
以下是django书中关于URL中的命名和未命名组如何在您的视图中转换为args和kwargs的更多信息:
http://www.djangobook.com/en/1.0/chapter08/#cn38
特别是
这个[命名的url组]完成了与上一个示例完全相同的事情,但有一个细微的区别:捕获的值作为关键字参数而不是位置参数传递给视图函数。