2017-09-10 7 views
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." }} 

変更なしを試してみました。

答えて

0

私はバカです。 2つの形式、formform_2がありました。

誤った変数名を使用しました。私の悪い。それは上記のコードで動作するように動作します。

関連する問題