1

1 つのフィールドが空のときに、検証エラーではなく keyerror が発生するのはなぜですか? フィールドはrequired=Trueデフォルトで

class form(forms.ModelForm):
    adminAccount = forms.CharField()
    adminPassword = forms.CharField(widget=forms.PasswordInput)

    def userCheck(self, user, password):
        # do something

    def clean(self):
        self.userCheck(self.cleaned_data['adminAccount'], 
                       self.cleaned_data['adminPassword']) 
4

1 に答える 1

1

ここで発生しているのはあなたのコードKeyErrorです:

self.userCheck(self.cleaned_data['adminAccount'],
               self.cleaned_data['adminPassword'])

self.cleaned_data[field]フィールドが投稿されていないときにアクセスしようとしているためです。

ドキュメントには、複数のフィールドに依存するデータを検証する方法を説明する例が記載されています。例によると、次のようなことを行う必要があります。

cleaned_data = super(form, self).clean()
adminAccount = cleaned_data.get('adminAccount')
adminPassword = cleaned_data.get('adminPassword')

if adminAccount and adminPassword:
    # proceed with your validation

return cleaned_data

また、Form.clean()cleaned_datadictを返す必要があることを忘れないでください。

于 2013-03-13T10:43:40.310 に答える