在 Django 中将 ProhibitNullCharactersValidator 动态添加到表单的 __init__ 中。需要建议
Dynamically add ProhibitNullCharactersValidator into the form's __init__ in Django. Need an advice
对于知道答案的人来说,这是一个非常简单的问题。
是否可以在 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[字段](表单的一个字段)
提前谢谢你,如果这个问题很愚蠢,我很抱歉。
由于您想将验证器添加到特定字段,您可以重写该字段的 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
对于知道答案的人来说,这是一个非常简单的问题。
是否可以在 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[字段](表单的一个字段)
提前谢谢你,如果这个问题很愚蠢,我很抱歉。
由于您想将验证器添加到特定字段,您可以重写该字段的 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