clean方法不会返回模型中的所有字段

2024-04-26 06:51:43 发布

您现在位置:Python中文网/ 问答频道 /正文

  1. 当我遇到与clean方法相关的问题时,当我使用代码行self.cleaned_data['field']时,只显示一个字段->;目的和流程模型有更多的字段,我需要验证流程模型的所有字段。这是我表格里的代码

  2. 我只希望在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.") 

Tags: selfcleandataifdelaroleraise
1条回答
网友
1楼 · 发布于 2024-04-26 06:51:43

试试这个,告诉我是否有效:

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

相关问题 更多 >