
Django 渣求助
首先我承认这个需求有点奇葩,讲一下前因后果先:
我需要在 server 启动时干点事,并且需要涉及到数据库操作,于是我这样搞:
class XXXserverConfig(AppConfig): name = 'xxxserver' def ready(self): from xxxutils.yyyutil import init_xxx_cache # 该步骤会 import models.py,进行数据库操作 init_xxx_cache() 以上方案工作正常,然而在我修改了某个 model,比如增加了一个 filed zzz 后,我需要执行
python manage.py makemigrations 来生成新的 migration,该命令也会执行上面初始化代码,于是就报错了,unknown column 'zzz' in 'field list'
我现在的想法是,能否在上面的 ready 函数中,检测出当前是在执行 manage.py makemigrations 命令,如果是的话,我就不执行后面的代码。
1 GuuJiang 2017-06-07 20:14:39 +08:00 via iPhone sys.argv |
2 julyclyde 2017-06-07 20:26:38 +08:00 那说明你加这段代码的位置不对 |
5 zonghua 2017-06-08 00:39:11 +08:00 via iPhone django siganl 接受请求的信号 |
6 flyspace15 2017-06-08 09:40:37 +08:00 |
7 flyspace15 2017-06-08 09:41:08 +08:00 笔误,应该是生产模式 |