私は2つのテーブルdocument(id、file)を持っています 類似性(id1、id2、類似性値) ここでid1とid2は、ドキュメントテーブルのIDの外部キーです。 id1!= id2を確認するためにdjangoのチェックを追加したいと思います。DjangoのSQLチェック
これをdjangoに追加する方法はありますか(SQLチェックを追加するようなものです)。 Django Docsから
私は2つのテーブルdocument(id、file)を持っています 類似性(id1、id2、類似性値) ここでid1とid2は、ドキュメントテーブルのIDの外部キーです。 id1!= id2を確認するためにdjangoのチェックを追加したいと思います。DjangoのSQLチェック
これをdjangoに追加する方法はありますか(SQLチェックを追加するようなものです)。 Django Docsから
:あなたの目的のためにそう
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')
ええと、これは検証する1つの方法だと思います。しかし、モデル作成時に誰かがSqlチェックを実装する方法を見つけたかどうかを確認するとよいでしょう。また、生のSQLの作成ステートメントを実行する方法はありますか? – viper
通常と同じように、データベースに対して必要なrawを実行できます。カスタマイズしたものに合わせてモデルに一致する出力を生成する必要があることに留意してください。実際にはアプリ内でさえ、生のクエリを実行できます。それは、あなたのアプリケーション内ではなくデータベース内のビジネスロジックのようなものを私がどのように実装したいのかが分かりません。それだけでコードを維持するのが難しくなります。 – John
このヘルプ?:[検証オブジェクトモデル]をい://docs.djangoproject.com/ja/dev/ref/models/instances/#id1) –