1. ホーム
  2. django

[解決済み] Django はフォームが初期化された後にフィールドの値を設定します。

2022-07-05 09:17:53

質問

フォームが初期化された後に、フィールドに特定の値を設定しようとしています。

例えば、以下のようなクラスがあります。

class CustomForm(forms.Form):
    Email = forms.EmailField(min_length=1, max_length=200)

ビューでは、このようなことができるようにしたいです。

form = CustomForm()
form["Email"] = GetEmailString()

return HttpResponse(t.render(c))

どのように解決するのですか?

POSTデータを渡していないので、あなたがしようとしていることは、フォームに表示される初期値を設定することだと推測します。これを行うには initial キーワードで行います。

form = CustomForm(initial={'Email': GetEmailString()})

を参照してください。 Django フォームのドキュメントを参照してください。 を参照してください。

フォームが送信された後に値を変更しようとする場合、次のようなものを使うことができます。

if form.is_valid():
    form.cleaned_data['Email'] = GetEmailString()

の使用法については、上記の参照ドキュメントを参照してください。 cleaned_data