通过视图动态更改Django的DEBUG模式
我写了一个视图,用来切换设置中的DEBUG变量,希望能在我的网站上启用和禁用Django的调试功能。
from myApp import settings
def toggleDEBUGView(request):
if request.user.is_superuser:
settings.DEBUG = not(settings.DEBUG)
我在settings.py文件中把DEBUG=False
设置成了假。所以即使通过我自己写的视图把DEBUG设置成真,我还是会遇到服务器错误(500)。
1 个回答
3
让我们从Django的文档中引用几件事:
1) django.conf.settings 不是一个模块,而是一个对象:而且它是一个元组。我们知道,元组的位置值是不能改变的,因为它是一个不可变对象。
2) 设置在最早的时候就被包含进来了:这意味着当你启动服务器时,设置对象就已经被创建了。
在我看来,设置的内容或变量只有在重新加载设置时才能在运行时改变,我认为这是一个不简单的问题。
这也会有帮助:在运行时改变Django设置
如果你通过任何方式实现了这一点,请告诉我。这对我来说会是很大的帮助 :)