1

フォーム.py

class PhoneinfoForm(forms.ModelForm):

    pname = forms.CharField(required=True)
    pnumber = forms.IntegerField(required=True)
    gname = forms.CharField(required=False)
    gnumber = forms.IntegerField(required=False)
    class Meta:
        model = Phone_info
        fields = ['pname','pnumber','gname','gnumber']

    def clean(self):
        cleaned_data = self.cleaned_data
        pname = cleaned_data.get("pname")
        pnumber = cleaned_data.get("pnumber")
        gname = cleaned_data.get("gname")
        gnumber = cleaned_data.get("gnumber")

        if 'pname' and 'pnumber' not in cleaned_data: 
            raise forms.ValidationError
        if 'gname' and 'gnumber' not in cleaned_data: 
            raise forms.ValidationError

        return cleaned_data

名前と番号を検証しようとしています。私の場合、pnameandpnumberは 1 つのセットで必須のフィールドであり、私が与えたものを達成しましたrequired=True

2番目のことは必須ではありませんが、gnameが入力された場合は空白になります(gnameに何も入力されていない場合は受け入れられます)、それは起こらないはずです。番号が入力された場合、名前なしでは受け入れられません。また、その逆も同様です。gnumbergnumbergname

私のコードは、これを検証する方法の 2 番目の選択肢では機能しません。

ありがとう

4

1 に答える 1