まあ、DDBBの構造を気にせずにモデルのインスタンスを保存したいです。だから私はすべてのモデルのクラスでオーバーライドdef save
を決定する。種類:Django管理のオーバーライドセーブメソッド
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
if condition:
raise Exception("You can´t insert that element")
return super(name_class, self).save(self, force_insert=force_insert, force_update=force_update, using=using, update_fields=update_fields)
さて、これで私は例外をrasingない挿入するために達成するため、しかし、インスタンスは、私は主要な制限が存在しているものは何でもDBに挿入するには、このチェックに合格した場合...
どのようにすることができますわかった?
コアコードsave
を無効にする必要があると思いますが、確認してDBに挿入する条件を確認する部分が見つかりませんでした。 多分、問題はフォームの検証だけです。
Django Adminで特定のフォームを上書きする方法。具体的には、モデルの1つのクラスを追加、削除、または編集する場所です。
モデルの保存方法を上書きすることができます。ここに例があります:http://stackoverflow.com/questions/4269605/django-override-save-for-model –
ラムありがとう、それは私がやっていることです。私のポストを最初にチェックしてください。問題は、保存を拡張するのではなく、オーバーライドすることです。 私のモデルにはプライマリキーの制限がありますが、実際のDBはありません(それは意味がないように見えますが...:P)。データが自分の小切手を渡す場合は、挿入を強制したい(is_valid = Trueかもしれません...) 私の2つのアプローチは以下の通りです:save(拡張しない)またはフォーム上で検証をジャンプ –