Django post_save 和南迁移

发布于 2025-01-04 03:36:31 字数 405 浏览 1 评论 0原文

我有一个针对所有对象(不仅仅是我的应用程序)的 post_save 信号,并在其中创建一个 SignalInfo (该模型来自我的应用程序)对象,放置有关创建的信息/将对象编辑到其中并保存。在我开始使用南方迁移之前,它工作得很好。

问题是,当我现在执行 syncdb 时,不会创建我的应用程序的表(它们将在 ./manage.py migrate 之后),但会创建像 这样的新对象>auth.permission 正在 syncdb 期间创建,我的信号尝试创建 SignalInfo 对象,但它不能,因为我的应用程序的表尚未准备好,我有数据库错误。

我怎样才能让它发挥作用?

I have a post_save signal for all objects (not only of my app) and in it I create a SignalInfo (this model is from my app) object, put info about created/edited object into it and save it. It worked fine until I started using South migrations.

The problem is that when I do syncdb now, tables for my app are not created (they will be after ./manage.py migrate), but new objects like auth.permission are being created during syncdb and my signal tries to create SignalInfo object but it can't because tables for my app are not ready and I have DatabaseError.

How can I make it work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你在我安 2025-01-11 03:36:31

您可以将 SignalInfo 创建代码包装在 try... except 块中,这样错误就不会干扰。唯一的副作用是 syncdb 创建的初始模型不会有与之关联的 SignalInfo 对象。

You can wrap your SignalInfo creation code in a try...except block so the error won't interfere. The only side-effect would be that the initial models created by syncdb won't have SignalInfo objects associated with them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文