オブジェクトからis_validメソッドを使用するバインドされたフォームを作成したいと思います。その理由は、ユーザーに新しい検証ルールに従って修正したい古いデータがあるためです。次に、私のフォームでクリーンメソッドのコードを再利用したいと思います。バインドされていないフォームをバインドされたフォームに変換しますか?
私は私の応答をシリアル化することになった:
from django.utils import simplejson
from django.core.serializers import serialize
(...)
fields_dict = simplejson.loads(serialize('json', [obj]))[0]['fields']
form = forms.MyForm(fields_dict)
if form.is_valid
これは動作しますが、それは非常にDjangishいないようです。また、これは一般的な問題のようですので、私はこれを行うより良い方法を探していました。 https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method しかし、私のための最も簡単な解決策になること:
は、非結合に結合していないから、データを変換する文書によると起こることを意味するものではありません。
を教えてください:あなたはどこかに古いデータを持っており、これが保存されたことから、検証ルールが変更されました。 ModelFormを使用して古いデータを再検証し、エラーをユーザに表示したいのですか? – Martin
'obj'はどこから来ますか?これはここで何が起こっているのかを判断するのに役立ちます。 –
@Penthiとまったく同じです。私はooglesが私が探しているものを私に与えたと思う。おかげで –