0
私のdjangoフォームのフィールドの値をのフォームのNone
にリセットします。__init__後、掃除前のdjangoのフォームフィールド値を変更します
これは私がこれまで持っているものです。フォームが私のテンプレートで表示されたときに
class MyFormForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ['field1', ...]
field1 = forms.IntegerField(max_value=100)
def __init__(self, *args, **kwargs):
values_changed = kwargs.pop('values_changed', False)
super(MyFormForm, self).__init__(*args, **kwargs)
self.data = self.data.copy()
if not values_changed:
for field in self.fields:
self.data[field] = None
は残念ながら、POSTされた値がそれにまだあります。どのようにして値を取り除き、フォームをレンダリングするテンプレートで変更が有効になるのですか?動作しません
もの:
- 初期パラメータを設定します。存在する値があるため、無視されます。
- クリーンな値を使用しています。フォームは有効ではないため、この段階ではフォームはクリーンではありません。
{{ form.field1.value|default_if_none:"Please enter." }}
編集:これで
cleaned_data
が、私はこのような値にアクセスしてい
存在しないのでを私はちょうど
{{ form.data.field1|default_if_none:"Please enter." }}
変更なしを試してみました。