Django Form какое-то поле всегда получает None в clean_field () или clean () - PullRequest
0 голосов
/ 17 июня 2019

Он всегда получает None в clean () или clean_field (), но в self.data.

Джанго 2.х

Объявление полей:

    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

1 Ответ

1 голос
/ 17 июня 2019

Во-первых, вы всегда должны возвращать очищенное значение из метода очистки поля.Во-вторых, небезопасно получать доступ к другим значениям поля в методе очистки поля;для этого и используется метод clean ().

...