私は、要素がアクティブかどうかを設定するためのオプションがあるモデルを持っています。リスト表示フォームでカスタム検証を追加する方法
"アクティブ"プロパティに "True"値を設定できる要素の数には制限があります。
AdminModelに検証コードを記述しました。今、elemntを編集して "active"とマークし、 "actvie"要素の限界に達している場合、私は例外を発生させます。
def clean_active(self):
if self.cleaned_data["active"]:
#check number of active elements in model.
私はまた、私はオブジェクトのリストを持っています。 list_display =( '名前'、 'first_promotion'、 'second_promotion'、 'active') readonly_fields = ['name'] list_editable = ['アクティブ' ]
私が欲しいのは、この検証をモデルの "リスト表示"でも行うことができることです。 リスト表示の検証コードをどこに追加する必要がありますか。
誰でも私にこれを行う方法を教えてもらえますか? ありがとうございます。
おかげで多くのことをオーバーライドすると思います。それは本当に速い答えです。私は、単一のオブジェクト管理者で使用していたのと同じ "modelform"を使用しています。今私はアクティブなすべてのフィールドでエラーが発生しています(onece私は限界を過ぎた)。私はこれをtweekすることができますので、私はちょうど私が – sandok
を編集した行をエラー表示して、 "true"または "false"の値が同じか変更されている場合、 "active"保存された値から? – sandok
私はちょうどデータベース対比較するかもしれません... 'if self.instance.id:changed = self.model.objects.get(id = self.instance.id).active!= self.cleaned_data.get( 'active' ) 'IIRCモデルフォームはGETを行わないので、投稿されたデータから直接値を入力し始めます... –