В моей модели Django я использую метод clean()
для проверки двух наборов значений полей. У меня оба условия в одном и том же clean()
методе. Однако я считаю, что первое условие проверяется системой, а второе игнорируется.
Вот моя модель и поля:
class Rates(models.Model):
master_doc = models.ForeignKey(Origin, ...
exit_rate = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True, default=0.00)
from_date = models.DateField(null=True, verbose_name='From date')
to_date = models.DateField(null=True, verbose_name='To date')
def clean(self):
if self.exit_rate <= 0:
raise ValidationError({'exit_rate': _('The exit rate must more than 0.')})
if self.from_date is not None:
if (self.to_date == self.from_date):
raise ValidationError({'to_date': _('From Date and end date may not be same.')})
В данном случае ошибка проверки поднимается только для первого т.е. поля exit_rate
. Если я поменяю порядок проверки , ошибка проверки возникает только для полей даты, а не для поля курса.
Я попытался это решение и использовал error_dict
но с ошибкой 'ValidationError' object has no attribute 'error_list'
Как я могу убедиться, что ошибка проверки возникает в случае, если любое из условий не выполняется?