Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表单,重写init,变量范围_Python_Django_Forms_Scope - Fatal编程技术网

Python Django表单,重写init,变量范围

Python Django表单,重写init,变量范围,python,django,forms,scope,Python,Django,Forms,Scope,在django中,我从视图中调用了一个表单,它被传递给一个额外的对象,该对象在表单init中弹出。我想在init之外的clean def中使用这个对象数据(person)。如何修复此传递信息的范围?谢谢 class RegForm(forms.Form): first = forms.CharField(min_length=5) def __init__(self, *args, **kwargs): person = kwargs.pop("person")

在django中,我从视图中调用了一个表单,它被传递给一个额外的对象,该对象在表单init中弹出。我想在init之外的clean def中使用这个对象数据(person)。如何修复此传递信息的范围?谢谢

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']

person
应该是一个实例变量:

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

然后,在其他方法中,将其称为
self.person
(不仅仅是
person
)。

person
应该是一个实例变量:

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

然后,在其他方法中,将其称为
self.person
(不仅仅是
person
)。

您应该将其分配给
self

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

这是相当基本的Python—您可能会从教程中受益。

您应该将其分配给
self

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

这是相当基本的Python—您可能会从教程中受益。

是的,我是Python新手。。熟悉其他语言中的“this”关键字。你能推荐一些简明的参考资料吗?是的,我是python新手。。熟悉其他语言中的“this”关键字。你能推荐一些简明的参考资料吗?