1

djangoでは、ビューから呼び出されるフォームがあり、フォームinitにポップされた追加のオブジェクトが渡されます。このオブジェクトデータ(person)をinitの外側のcleandefで使用したいと思います。この渡された情報の範囲を修正するにはどうすればよいですか?ありがとう!

class RegForm(forms.Form):
    first = forms.CharField(min_length=5)

    def __init__(self, *args, **kwargs):
        person = kwargs.pop("person")
        super(CompleteRegistrationForm, self).__init__(*args, **kwargs)

    def clean_first(self):
        if not self.cleaned_data['first'] == person.first:
            raise forms.ValidationError(_("This information does not match records."))
        else:
            return self.cleaned_data['first']
4

2 に答える 2

1

personインスタンス変数である必要があります:

def __init__(self, *args, **kwargs):
    self.person = kwargs.pop("person")
    super(CompleteRegistrationForm, self).__init__(*args, **kwargs)

次に、他の方法では、それをself.person(だけでなくperson)と呼びます。

于 2012-08-01T18:52:46.273 に答える
0

あなたはそれをに割り当てる必要がありますself

self.person = kwargs.pop("person")

これはかなり基本的なPythonです-チュートリアルを行うことでおそらく恩恵を受けるでしょう。

于 2012-08-01T18:53:04.457 に答える