Python Django表单,重写init,变量范围
在django中,我从视图中调用了一个表单,它被传递给一个额外的对象,该对象在表单init中弹出。我想在init之外的clean def中使用这个对象数据(person)。如何修复此传递信息的范围?谢谢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")
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”关键字。你能推荐一些简明的参考资料吗?