Задать вопрос

Почему при миграции в Django (Попытка создать ArrayField) возникает ошибка?

Весь код не мой, я переписываю чужой проект. Могу чего то не понимать.
Условно, есть вот такая модель:
class ModelProjectRoot(models.Model):
    models.TextField(null=True, default=''),

Мне нужно поменять текстовое поле на массив текстовых полей.
Я пытаюсь сделать следующее:
class ModelProjectRoot(models.Model):
    something_array = ArrayField(
        models.TextField(null=True, default=''),
        null=True, default=list
    )

Потом я делаю
python manage.py makemigrations
Что дает нормальный результат, подтверждающий изменения
При попытке миграции
python manage.py migrate
Я получаю следующее:
return self.cursor.execute(sql, params)
django.db.utils.DataError: ОШИБКА:  ошибочный литерал массива: ""
DETAIL:  Значение массива должно начинаться с "{" или указания размерности

Если мигрировать с любыми другими данными, не используя массив - все проходит нормально
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Tomio
@Tomio
backend developer (python, php)
Ошибка кроется здесь: default=''

Вы по умолчанию пытаетесь для массива указать тип "строка". А вам нужно указать пустой массив.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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