似乎最新的Django调试工具栏模块现在已更改为中间件,并且需要显式URL设置才能工作。在我的Django项目中,我总是尝试根据环境保持设置,并且没有if settings.DEBUG
遍布设置文件和项目。
我的设置布局是一般的:
common.py (everything in here)
development.py (dev only things here)
production.py (prod only things here)
在Django 1.10中是否有一种方法可以添加到development.py文件中的URL,以便我可以远离if settings.DEBUG
。或者,如果想要使用新版本的调试工具栏,我们是否会被迫使用此方法?
我只是发现下面的一些反模式
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
答案 0 :(得分:0)
如果您不想在网址配置中测试settings.DEBUG
的值,则可以使用与您的设置类似的模式管理网址。
而不是urls.py
文件,您将拥有一个具有此结构的urls
包:
urls
├── __init__.py
├── common.py
├── local.py
└── production.py
在您的不同设置文件中,您可以指定以这种方式使用的URL配置文件:
# settings/local.py
ROOT_URLCONF = 'urls.local'
# settings/production.py
ROOT_URLCONF = 'urls.production'
urls/common.py
文件将公开urlpattern
成员,其中包含您将在urls/local.py
和urls/production.py
中导入和使用的所有配置所共有的所有网址格式。
例如:
# urls/common.py
urlpatterns = [
# Put all common URL patterns here
]
# urls/local.py
from .common.py import urlpatterns as common_urlpatterns
urlpatterns = common_urlpatterns + [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
如果您需要我的意见,这个解决方案感觉有些过分,因为与设置相反,URL配置在环境之间不应有太大差异。