2011-01-12 3 views
1

syncdbの実行時にカスタムメソッドを実行する方法があるのだろうかと思います。 私が達成しようとしているのは、メールテンプレートをデータベースに読み込むことです。 db内の複数のエントリにほぼ同じテンプレートが必要なので、initial_dataファイルに配置したくありません。Django - syndbコマンドのカスタムメソッドの実行

私はdjangoのドキュメントとウェブを検索しましたが、これに対する解決策は見つかりませんでした。

何か助けていただければ幸いです。

答えて

3

post_syncdbシグナルはどうですか?

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

あなたが関数内で希望するものは何でも信号および実行するためにハンドラを接続します。

あなたのケースでうまくいくかもしれませんが、そうでないかもしれません。 post_syncdbは、テーブルの作成後に呼び出され、すべてのアプリに送信されるため、デフォルトのデータ作成をすべて処理するメソッドが1つ必要な場合は、次のスニペットのようなものを使用して、あなたのテーブルが存在することを確認してください:P。

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

まあ、それはアイデアです。楽しい!

+0

私は必要なもののように見えますが、atmで動作しないようです。まだシグナルハンドラの登録で少し苦労しています。私はそれがうまくいけば後であなたにフィードバックを与えます。とにかくありがとう。 –

+0

あなたのソリューションはうまくいきます。しかし、 'syncdb_signal'がフィクスチャのインストールの前に行われるので、私は必要なものではありません。しかし、あなたは正しい方向に私を指摘しました。フィクスチャのインストール後にモデルのセーブハンドラを作成してテンプレートの内容を更新します。ありがとう! –

+0

Hey Grave、答えとしてこれを受け入れてくれてありがとう:)私はあなたがしたことを聞くことができますか? post/pre_saveシグナルを意味しますか? –

関連する問題