В models.py у меня есть модель с пользовательским clean()
методом.Тем не менее, любые переменные, которые я сохраняю в нем, не сохраняются.Если я пытаюсь сохранить переменную вне метода clean()
, все работает хорошо.
class MenuItem(SortableMixin):
item_internal = models.ForeignKey(Page, on_delete=models.CASCADE, blank=True, null=True)
item_external = models.CharField(max_length=500000, blank=True, null=True)
def clean(self):
if self.item_external is not None and self.item_internal is not None:
raise ValidationError('Error')
elif self.item_external is None and self.item_internal is None:
raise ValidationError('Error')
else:
if self.item_external is not None:
self.item_link = self.item_external
elif self.item_internal is not None:
self.item_link = '/' + self.item_internal.title_text.replace(' ', '%20')
Все, что находится внутри item_link
, не сохраняется.Зачем?Как это исправить?