对于知道答案的人来说,这是一个简单的问题。
是否可以在froms init ???
中将验证器动态添加到表单的字段中我想做这样的事情:
class SomeForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.pk = kwargs.pop("pk", None)
forms.ModelForm.__init__(self, *args, **kwargs)
if self.pk == some integer:
self.fields[field].validator(s)…….. # and I don’t know what to type here
else:
do something else…
目标是根据self.pk动态将ProhibitNullCharactersValidator添加到self.fields [field](表单的一个字段)
请先谢谢您,如果这个问题很愚蠢,就对不起。
答案 0 :(得分:1)
由于要将验证器添加到特定字段,因此可以覆盖该字段的clean_
方法,然后在此处调用验证器。
class SomeForm(forms.ModelForm):
def clean_myfield(self):
value = self.cleaned_data.get('myfield')
if self.instance.pk == some_value:
ProhibitNullCharactersValidator(value)
return value