我有所有对象(不仅是我的应用程序)的 post_save
信号,我在其中创建了一个 SignalInfo
(该模型来自我的应用程序)对象,将有关创建/编辑对象的信息放入其中并保存。在我开始使用南迁移之前,它运行良好。
问题是,当我现在执行 syncdb
时,我的应用程序的表没有创建(它们将在 ./manage.py migrate
之后),但是在 auth.permission
期间正在创建像 syncdb
这样的新对象,我的信号尝试创建 SignalInfo
对象,但它不能,因为表因为我的应用程序还没有准备好,我有 DatabaseError。
我怎样才能让它工作?
最佳答案
您可以将 SignalInfo
创建代码包装在 try...except
块中,这样错误就不会干扰。唯一的副作用是 syncdb
创建的初始模型不会有 SignalInfo
对象与之关联。
关于Django post_save 和南迁移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9227492/