Django - 在 syndb 命令上运行自定义方法

发布于 2024-10-11 17:33:09 字数 163 浏览 2 评论 0原文

我想知道是否有办法在执行syncdb 时运行自定义方法。 我想要完成的是将邮件模板加载到数据库中。由于我在数据库中的多个条目中需要几乎相同的模板,因此我不想将其放置在initial_data 文件中。

我搜索了 django 文档和网络,但找不到任何解决方案。

任何帮助表示赞赏。

I'm wondering if there is a way to run a custom method when syncdb is executed.
What I am trying to accomplish is to load a mail template into the database. As I need nearly the same template in multiple entries in the db, I don't want to place it in the initial_data file.

I've searched the django docs and the web, but couldn't find any solution for this.

Any help is appreciated.

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

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

发布评论

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

评论(1

杀手六號 2024-10-18 17:33:09

post_syncdb 信号怎么样?

http://docs.djangoproject.com/ en/dev/ref/signals/#django.db.models.signals.post_syncdb

将处理程序连接到信号并在函数中运行您希望运行的任何内容。

嗯,它可能适合你的情况,也可能不适合。 post_syncdb 在表创建后调用并发送到所有应用程序,因此,如果您想要一种处理所有默认数据创建的方法,则必须使用类似以下代码片段的内容来检测信号是否用于列表中的最后一个应用程序可确保您的表存在:P。

http://djangosnippets.org/snippets/1988/

嗯,这是一个想法。享受!

How about the post_syncdb signal?

http://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_syncdb

Connect a handler to the signal and run whatever you wish in your function.

Well, it might work in your case, it might not. post_syncdb is called after table creation and sent to all apps, so if you want one method that handles all default data creation, you'd have to use something like the following snippet to detect if the signal is for the last app in the list to ensure your tables exist :P.

http://djangosnippets.org/snippets/1988/

Well, it's an idea. Enjoy!

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