在clean()或clean_field()中总是无,但在self.data中。
django 2.x
字段声明为:
phone = forms.CharField(
label='',
min_length=phone_number_min,
max_length=phone_number_max,
)
code_length = settings.SMS_CODE_LENGTH
code = forms.CharField(
label='',
min_length=code_length,
max_length=code_length,
)
def clean_code(self):
code = self.cleaned_data.get('code')
phone = self.cleaned_data.get('phone')
result, message = sms_validator.validate(phone, code)
def clean(self):
code = self.cleaned_data.get('code')
phone = self.cleaned_data.get('phone')
result, message = sms_validator.validate(phone, code)
以上两者均错误运行:
phone = None
但是如果
phone = self.data.get('phone')
可以获取值。
我想在clean_data中获取电话值
答案 0 :(得分:1)
首先,您必须始终从字段清理方法返回清理后的值。其次,以字段清除方法访问其他字段值是不安全的。这就是总体clean()方法的目的。