maxclax
@maxclax

Почему в Django clean() не проходит проверку в тестах?

Имею модель и в ней метод
def clean(self):
        # проверка на совпадение входной и выходной валюты
        if self.ccy == self.base_ccy:
            raise ValidationError(_('course.model.clean.unique'))
        # проверка на обратное направления
        if Course.objects.filter(ccy=self.base_ccy, base_ccy=self.ccy):
            raise ValidationError(_('course.model.clean.reunique'))


при прохождении тестов в таком виде он не проходит из за того что не вызывает clean:

# проверка на добавление обекта с одинаковым направлением
        with self.assertRaises(ValidationError):
            Course.objects.create(ccy=self.course_1.base_ccy, base_ccy=self.course_1.base_ccy)


приходиться добавлять .clean() в конце. Что не так? Почему метод не вызывает по умолчанию?
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ответы на вопрос 1
dizballanze
@dizballanze
Software developer at Yandex
Из документации:

Note, however, that like Model.full_clean(), a model’s clean() method is not invoked when you call your model’s save() method.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы