Django:避免将公共URL参数传递给每个视图

时间:2012-08-04 09:27:51

标签: django google-app-engine namespaces datastore urlconf

  

可能重复:
  Django: How to access URL regex parameters inside a middleware class?

我在google appengine中使用django。我的应用中的每个网址都有以下格式的公司代码:

http://localhost:8080/[company]/blah/blah

我想要做的是预处理url并获取[company],将appengine datastore命名空间设置为公司代码。这可以通过使用命名的url模式来完成,该模式将公司代码作为kwargs参数传递给每个视图函数。这似乎太多了,只是在开始时设置命名空间。此外,在我的任何观点中,我都不需要这个公司的参数。

是否可以从url param设置名称空间,但是避免将公司参数传递给我项目的每个视图?

1 个答案:

答案 0 :(得分:1)

您不需要在视图函数定义中实际包含kwarg,因此您可以忽略它。

url(r'^(?P<company>[-\w]+)/$','app.views.foo_view', name="foo_view"),

def foo_view(request):
    pass

或者在kwargs中使用process_request中间件和pop公司,以便它不会传递给任何视图。