我想在服务器启动(开发和生产)时执行以下代码行:
from django.core import management management.call_command('syncdb', interactive=False)
放入settings.py它不起作用,因为它需要先加载设置。
将它们放在视图中并从外部访问该视图也不起作用,因为有些中间件正在使用该数据库,并且这些中间件将失败并且不允许我访问该视图。
将它们放在中间件中是可行的,但是每次访问我的应用程序时都会调用它们。一种可能的解决方案可能是创建一个完成所有工作的中间件,然后将其从中间件中删除,MIDDLEWARE_CLASSES因此不再调用它。我可以在没有太多猴子补丁的情况下做到吗?
MIDDLEWARE_CLASSES
写的中间件,这是否在__init__事后提高django.core.exceptions.MiddlewareNotUsed从__init__,Django会删除它为所有请求:)。__init__是在启动时调用的,而不是在第一个请求时调用的,因此不会阻止你的第一个用户。
__init__
django.core.exceptions.MiddlewareNotUsed