URL模式内的Django请求

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

我将一些自定义变量传递给来自自定义中间件的请求。现在我需要包括一些基于自定义变量值的应用程序URL。所以我想得到这样的东西:

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配置。