我创建了一个middleware.py文件,我尝试添加" suit"在这个文件的INSTALLED_APPS中,我打印INSTALLED_APPS,尽管列表中没有效果但管理页面没有效果,管理员的风格仍然默认。 这是我在middleware.py文件中的代码
from django.core.urlresolvers import resolve
from django.conf import settings
from django.db.models import loading
from django.core import management
from django.shortcuts import redirect
class CustomeAppMiddleware(object):
def process_response(self, request, response):
if 'admin' in request.path_info and 'suit' not in settings.INSTALLED_APPS:
print request.path_info
tmp = ('suit',)+settings.INSTALLED_APPS
settings.INSTALLED_APPS = tmp
print settings.INSTALLED_APPS
loading.cache.loaded = False
management.call_command('syncdb', interactive=False)
return response
请帮我解决这个问题。谢谢大家。
答案 0 :(得分:0)
你不应该像这样尝试在运行时改变INSTALLED_APPS
。
Django在服务器启动时加载应用程序一次。如果您在请求期间更改INSTALLED_APPS
,则对其产生任何影响为时已晚。