私はシンプルModelForm
を作成しようとしました、と私はそのdjangoは、オブジェクトIDを渡すフォームを更新しますか?
mymodel = MyModel.objects.get(pk=1)
MyModelForm(instance=mymodel)
のような更新のためのインスタンスを渡しても、Djangoは隠しフィールドを作成したり、何らかの方法でオブジェクトのPKが含まれていないことに気づきますテンプレート内のだから私はこれを自分で渡す必要がありますか? 私のIDを1,2,3 ..のようにテンプレートに渡したくないので、uuidのようなものを渡すか、signing.dumps(object_id)
を使い、次にsigning.loads(object_id)
をdjango署名ライブラリから渡すことをお勧めします。
このIDを私のテンプレートのフォームPOSTデータに含める場合は、 そのIDの取得を正確に担当している人がわかりませんでした。ビューまたはフォーム自体ですか? ビューでは、組み込みのFormView
、またはUpdateView
という意味で、これらのビューでオブジェクトIDがどのように見つかるのでしょうか? signing.dumps(object_id)
の出力を隠しフィールドに格納すると仮定します。
なぜフォームにそれを渡す必要がありますか?あなたはすでにそれをビューに持っています。 –
フォームはすべてのフィールドを生成します。そして、このフィールド(符号付きid、またはuuid)は、非表示のフィールドです( – user3599803
)[Djangoでオブジェクトを編集フォームから更新する方法は?](http://stackoverflow.com/questions/4673985/how -to-update-object-from-edit-form-in-django) – e4c5