URL模式内的Django请求
我将一些自定义变量传递给来自自定义中间件的请求。现在我需要包括一些基于自定义变量值的应用程序URL。所以我想得到这样的东西:URL模式内的Django请求,django,django-views,django-urls,Django,Django Views,Django Urls,我将一些自定义变量传递给来自自定义中间件的请求。现在我需要包括一些基于自定义变量值的应用程序URL。所以我想得到这样的东西: urlpatterns = patterns('', if request.myvar != False: url(r'^', include('specialapp.urls')), url(r'^', include('basicapps.urls')), ) 尽管@knbk的评论似乎是正确的方式,但有另一种方式来处理您的问题: ur
urlpatterns = patterns('',
if request.myvar != False:
url(r'^', include('specialapp.urls')),
url(r'^', include('basicapps.urls')),
)
尽管@knbk的评论似乎是正确的方式,但有另一种方式来处理您的问题:
urlpatterns = patterns('',
url(r'^', include('basicapps.urls')),
)
if request.myvar != False:
urlpatterns.append(url(r'^', include('specialapp.urls')))
顺便说一句,这不会改变你的很多意图。我只是检查
request.myvar
在urlpatterns
元组之外,并在request时添加正确的url。myvar
不等于False
,因为您依赖于request
对象,这更多地取决于每页请求,此时,您可能不希望包括/排除可用的URL。您可能希望在视图中处理这个问题-(重定向/404,等等…)或者让中间件为您这样做。我有一个应用程序来处理这个问题。如果自定义请求变量为True,我只想包含该应用程序,但不知道如何添加。-将request.urlconf
设置为中间件的process\u request
方法中的备选url配置。