2012-03-23 4 views
1

私は2つのテーブルdocument(id、file)を持っています 類似性(id1、id2、類似性値) ここでid1とid2は、ドキュメントテーブルのIDの外部キーです。 id1!= id2を確認するためにdjangoのチェックを追加したいと思います。DjangoのSQLチェック

これをdjangoに追加する方法はありますか(SQLチェックを追加するようなものです)。 Django Docsから

+1

このヘルプ?:[検証オブジェクトモデル]をい://docs.djangoproject.com/ja/dev/ref/models/instances/#id1) –

答えて

1

:あなたの目的のためにそう

Model.clean() 
""" This method should be used to provide custom model validation, and to 
modify attributes on your model if desired. For instance, you could use it to 
automatically provide a value for a field, or to do validation that requires 
access to more than a single field: """ 

def clean(self): 
    from django.core.exceptions import ValidationError 

    if self.status == 'draft' and self.pub_date is not None: 
     raise ValidationError('Draft entries may not have a publication date.') 

あなた​​モデルについては、以下のようなものを記述します(HTTPS:

def clean(self): 
    from django.core.exceptions import ValidationError 
    if self.id1 == self.id2: 
     raise ValidationError('Entries must compare different objects') 
+0

ええと、これは検証する1つの方法だと思います。しかし、モデル作成時に誰かがSqlチェックを実装する方法を見つけたかどうかを確認するとよいでしょう。また、生のSQLの作成ステートメントを実行する方法はありますか? – viper

+0

通常と同じように、データベースに対して必要なrawを実行できます。カスタマイズしたものに合わせてモデルに一致する出力を生成する必要があることに留意してください。実際にはアプリ内でさえ、生のクエリを実行できます。それは、あなたのアプリケーション内ではなくデータベース内のビジネスロジックのようなものを私がどのように実装したいのかが分かりません。それだけでコードを維持するのが難しくなります。 – John

関連する問題