Django - 在 syndb 命令上运行自定义方法
我想知道是否有办法在执行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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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!