我希望在服务器启动时(开发和生产环境均适用)执行以下代码:
from django.core import management
management.call_command('syncdb', interactive=False)
将它放在 settings.py
中不起作用,因为需要先加载设置。
将它们放在视图中并从外部访问该视图也行不通,因为有些中间件使用数据库,这些中间件会失败并且不允许我访问该视图。
将它们放在中间件中会起作用,但每次访问应用程序时都会调用它。一种可能的解决方案是创建一个中间件来完成所有工作,然后从 MIDDLEWARE_CLASSES
中删除自身,以便不再调用它。我能否在不进行太多猴子补丁的情况下实现这一点?