2016-04-11 5 views
0

manage.pyを呼び出すときに検証をスキップすることは可能ですか?manage.pyを呼び出すときの検証を無効にする

開発中に、私は自分のデータベースを時折 "manage.py loaddata ..."で初期化する必要があります。私は、コードを次している私のテンプレートビューの1つで :「Mailtemplateマッチングクエリは存在しません」

class CharterModalEmailOption(MessagesMixin, CharterMixin, TemplateView): 
    footer_template = Mailtemplate.objects.get(slug='signatur') 

manage.pyはメッセージで失敗そうです。この段階でテーブルが空で、loaddataでエントリを追加したいからです。したがって、manage.pyが私のビューを検証する限り、データを追加することはできません。終わりのように見えます。

"footer_template"をクラス関数内に定義し、クラスレベルでは定義しないことで、この問題を解決できます。

誰かがアイデアを持っていますか?

は、 アンドレアス

答えて

1

あなたが今までクエリセットに直接フィールドを設定してはいけません、代わりにあなたは、コンストラクタを使用する必要があります、ありがとうございました。

これを直接行うということは、クラスが最初に参照されたときにこれが実行されたことを意味し、古い情報が返される可能性があります。

あなたはクラス

class CharterModalEmailOption(MessagesMixin, CharterMixin, TemplateView): 
    def __init__(self, *args, **kwargs): 
     self.footer_template = Mailtemplate.objects.get(slug='signatur') 
+1

のインスタンスを作成するときに、単純にコンストラクタを提供するので、このフィールドはのみ初期化されるには、あなたのアドバイスや説明をいただき、ありがとうございます。 –

関連する問題