Переменные внутри метода clean () не сохраняются в Django - PullRequest
0 голосов
/ 04 июня 2018

В 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, не сохраняется.Зачем?Как это исправить?

1 Ответ

0 голосов
/ 16 июня 2018

Я пытался что-то сохранить в базу данных, не создавая для нее поля базы данных.Решение простое:

item_link = fields.CharField(max_length=50000)

Все, что мне нужно было сделать, это добавить эту строку в class.Большое спасибо Willem Van Onsem, который помог мне с этим в комментариях.Спасибо!

...