2011-02-06 78 views
0

我正在编写自己的CMS,并且有一些初始设置信息应该写入数据库的情况。我不喜欢用夹具数据写一些XML/Json文件的想法,当我运行syncdb时将导入这些数据。在Django中为自定义CMS编写初始设置数据的最佳方式

我在想什么是我可以创建一些cms_init.py文件并在manage.py syncdb之前运行它。在这个文件中,我需要设置环境,然后使用模型我可以将自定义数据写入数据库。

另一种方法 - 在管理端使用方法,例如initialize()和它的url。它会存储一些变量,永远不会再运行,在这个函数中,我只需要调用我需要的模型,就是这样。

为什么我在寻找解决方案,因为我需要动态初始数据写入,这将取决于settings.py和每次从其他模块的设置,我不想每次都重写数据库的初始文件运行新项目。

任何想法?

回答

2

不要自动/隐式地执行此操作,请让用户使用manage.py命令(例如,

python manage.py your_cms init 

当运行您的CMS功能检验或者说try-except如果初始化已经发生,如果不提醒用户先运行init命令。

明确地做它是安全的,对用户来说不是一个很大的不便,因为它只能做一次。

+0

谢谢!但如何让管理脚本抓住我的文件,这将用于init的CMS? – 2011-02-06 17:58:26

相关问题