2009-04-30 5 views

答えて

9

現在、Djangoはモデルレベルの検証(基本的な "NOT NULL"、 "UNIQUE"および長さ検証のほかに)は提供していません。これはTODOリストにありますが、今後の1.1リリースには当てはまりません。

モデルのsave()メソッドで検証関連のタスクを実行するか、before_save信号を使用します(シグナルハンドラで例外が発生すると、トランザクションがロールバックされます)。

1

一般的には、field typesとそのオプションまたはmodel's meta optionsに組み込むことで、必要なものを処理できるはずです。検証/衛生を行うにはoverride the save methodもできます。十分でない場合は、独自のfield typeを作成することができます。

問題は、期待される動作が良好でないことです。何が起こるはずですか?例外を発生する必要がありますか?フィールドは実際にはデータベースレベルで抽象化されているだけなので、そこにはデータベースが知る必要がある情報より多くの情報はありません。

5

モデル検証はDjangoバージョン1.2ですぐに利用可能になります。あなたがトランクの現在のDjango svnチェックアウトを使用している場合は、今すぐが利用可能です。

さまざまなcleanメソッドが利用可能になりました。詳細は、http://docs.djangoproject.com/en/dev/ref/models/instances/#id1を参照してください。

関連する問題