在我的settings.py中有一些自定义设置,我使用了一些数据结构。这些很少改变。 我注意到从一个视图中改变它们不会起作用。 如何强制django在运行时重新加载设置文件? 到目前为止,唯一有效的方法是重新启动Apache Web服务器。但我想避免这种情况。
答案 0 :(得分:1)
在我的代码中。我需要为受保护(仅限管理员限制)的页面重新发明@login_required装饰器。这就是我所做的。
在project / settings.py中,我创建了一个名为ACCESS_CP = False
的变量
在我导入的app / views.py中
from django.conf import settings
在def login_form中
# (if the user is authenticated and the user is an Active Directory Domain Admin)
settings.ACCESS_CP = True
在def ControlPanel中:
if request.method == "GET" and settings.ACCESS_CP == False:
return redirect('login')
elif request.method == "GET" and settings.ACCESS_CP == True:
settings.ACCESS_CP = False
return render(request, 'controlpanel.html')
答案 1 :(得分:0)
将django.conf导入为conf
def home(请求):
conf.settings.SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
conf.settings.DATABASES['default']['NAME'] = 'testdb'