我已经在表单的def init 函数中建立了一个变量,希望能够在def clean()中以相同的形式进行访问。
def __init__(self, *args, **kwargs):
super(UserOrderForm, self).__init__(*args, **kwargs)
car = 'BMW'
def clean(self):
cleaned_data = super(UserOrderForm, self).clean()
print(car)
当我打印汽车时,我被告知
name 'car' is not defined
有没有办法做到这一点?
谢谢!
答案 0 :(得分:2)
在Python中,您使用self
声明实例属性,必须将代码更改为
def __init__(self, *args, **kwargs):
super(UserOrderForm, self).__init__(*args, **kwargs)
self.car = 'BMW'
def clean(self):
cleaned_data = super(UserOrderForm, self).clean()
print(self.car)
在您的原始代码中,变量car
确实仅存在于__init__
方法内部。
答案 1 :(得分:0)
我认为您要使car成为成员变量,然后使用self.car =“ bmw”在init方法中进行设置。
然后,当您要查看clean的值时,可以调用self.clean
答案 2 :(得分:0)
不确定要执行的操作,但表单应声明一个模型以使查询集可以使用。
class UserOrderForm(forms.ModelForm):
class Meta:
model = Cars
fields = ['manufacturer', 'model_number', 'etc']
widgets = {'manufacturer': forms.Select}
您的用户将提供输入,例如,从选择字段中选择BMW。
签出:https://docs.djangoproject.com/en/2.1/topics/forms/modelforms/