2011-02-06 10 views
0

私は自分のCMSを作成しており、初期設定情報をデータベースに書き込む必要があります。私はsyncdbを実行するときにインポートされるフィクスチャデータを持つXML/Jsonファイルを書くアイデアが気に入らない。DjangoのカスタムCMSの初期設定データを書き込むための最良の方法

私が考えているのは、いくつかのcms_init.pyファイルを作成してmanage.py syncdbより前に実行できるということです。このファイルでは、私は環境を設定し、その後、モデルの使い方で自分のカスタムデータをデータベースに書き込むことができます。

もう1つの方法 - 管理者側でメソッドを持つこと。たとえば、initialize()とそのURL。それはいくつかの変数を格納し、決して2回目を実行することはなく、この関数では私は必要なモデルを呼び出すだけです。

動的な初期データ書き込みが必要なので、解決策を探しているのはなぜですか?settings.pyと他のモジュールの設定に依存し、毎回データベースの初期ファイルを書き換えたくないためです新しいプロジェクトを実行します。

アイデア?

答えて

2

自動的に/暗黙的に行うのではなく、manage.pyコマンドで明示的に行うようにします。

python manage.py your_cms init 

は、あなたのCMSの機能チェックや初期化が行われた場合と、最初のinitコマンドを実行するユーザーを思い出さない場合は、むしろ try-exceptを実行している場合。

これを明示的に行うことは、一度だけ行う必要があるため、安全性が高く、ユーザーにとって大きな不便はありません。

+0

ありがとうございます!しかし、スクリプトを管理する方法は私のファイルを取得します。これはCMSの初期化に使用されますか? –

+0

私はCMSが既にインストールされていました。そうでなければ、あなたのDjangoアプリをsettings.pyのINSTALLED_APPSに入れなければなりません。そして、Pythonのパス上で利用可能でなければなりません。それが問題の価値がある自動化するかどうかは分かりません。また、あなたはこれを読むことができます:http://docs.djangoproject.com/en/dev/howto/custom-management-commands/ – stefanw

+0

CMSは(Django用語アプリケーションで)モジュールのセットであり、それらはすべて既にインストールされています。あなたが与えたリンクは素晴らしいです。お手伝いありがとう ;) –

関連する問題