当我遇到与清洁方法相关的问题时,当我使用代码行self.cleaned_data['field']
时,只显示一个字段 - >目的和过程模型有更多的字段,我需要验证有关过程模型的所有字段。这是我在表单中的代码。
我希望只在clean中进行验证并跳过models.py中的验证。
感谢。
class ActivityForm(forms.ModelForm):
role = forms.CharField()
def __init__(self, *args, **kwargs):
super(ActivityForm, self).__init__(*args, **kwargs)
self.fields['role'].label = "Rol"
def clean(self):
name = self.cleaned_data['purpose']
purpose = self.cleaned_data['purpose']
role = self.cleaned_data['role']
order_in_structure = self.cleaned_data['order_in_structure']
if name == '':
raise ValidationError("Se debe diligenciar el nombre de la nueva actividad.")
if purpose == '':
raise ValidationError("Se debe diligenciar la descripción de la nueva actividad.")
if role == '':
raise ValidationError("Se debe dilligenciar el rol responsable de la nueva actividad.")
答案 0 :(得分:0)
试试这个并告诉我是否有效:
class ActivityForm(forms.ModelForm):
role = forms.CharField()
def __init__(self, *args, **kwargs):
super(ActivityForm, self).__init__(*args, **kwargs)
self.fields['role'].label = "Rol"
def clean(self):
cleaned_data=super(ActivityForm, self).clean()
name = cleaned_data['purpose']
purpose = cleaned_data['purpose']
role = cleaned_data['role']
order_in_structure = cleaned_data['order_in_structure']
if not name:
raise ValidationError("Se debe diligenciar el nombre de la nueva actividad.")
if not purpose:
raise ValidationError("Se debe diligenciar la descripción de la nueva actividad.")
if not role:
raise ValidationError("Se debe dilligenciar el rol responsable de la nueva actividad.")
请注意,如果字符串为空not the_string
将返回True