インスタンス設定ロジックなしでModelForm
a をレギュラーに変換する明白な方法はありますか?Form
まったく同じフィールド リストからの入力を使用してモデルにクエリを実行してに変換したい Update/Create ModelForm ビューがありますが、データがすぐにアタッチされるSearchView
ため、必要なフィールドとタイプで問題が発生します。ModelForm
self.instance
必要なものを得るためにメタクラスにハッキングすることになりましたが、目の前でいくつかの関数をオーバーライドする前に、簡単に解決策を見逃す可能性があると感じています。コアのdjangoコードを引っ張るのはあまり好きではありません...
メタクラス全体をコピーして貼り付けるよりも、他の形式のハッカーの方が望ましいでしょう。
class ModelFormMetaclass(type):
def __new__(cls, name, bases, attrs):
formfield_callback = attrs.pop('formfield_callback', None)
try:
parents = [b for b in bases if issubclass(b, ModelToForm)] #<-- here
# ... rest of class
class ModelToForm(BaseForm):
__metaclass__ = ModelFormMetaclass
アップデート:
ModelForm._post_clean()
インスタンスの構築/関連するフィールドの検証を担当しているようです。
現在、私は無効_post_clean()
にして、それが私をどこに連れて行くかを見ています。