[英]Change form field value in django, after __init__ but before cleaning
我想将表单的__init__
方法中的django表单中的某些字段的值重置为None
。
这是我到目前为止的内容:
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的值仍在其中。 如何删除值,以使更改在呈现表单的模板中生效?
无效的事情:
cleaned_data
不存在 我正在访问这样的值:
{{ form.field1.value|default_if_none:"Please enter." }}
编辑:我刚刚尝试
{{ form.data.field1|default_if_none:"Please enter." }}
没变。
我是白痴。 有两种形式,即form
和form_2
。
我使用了错误的变量名。 我的错。 它与上面的代码一样工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.