у неё подтемы, ссылка на свою же модель)
Но я хочу сделать ее FK и назвать parent_topic
В миграциях я бы хотел вытащить первого родителя и сохранить его а потом вставить в новое поле parent_topic
Как можно это сделать?
Какие тут проблемы? Добавляется миграция через makemigrations —empty. Далее пишется миграция через migrations.RunPython. Получить нужные топики, annotate(count_child=Count('subtopics')).exclude(count_child=0) тут все инстансы у которых есть подтопики. Всё это в for x in qs, у каждого инстанса x.subtopics.update(parent=x)
А, хм, получается я достаю по родителю для топика(если есть) Где-то это сохраняю, потом делаю миграции и уже опять свой скрипт Но я ведь уже изменю класс и там не будет поля subtopics, а будет новый parent_topic Джанго же тогда мне ошибку даст, когда в первом скрипте сделаю Topic.objects.annotatate(ccount=Count(‘subtopics’)) Так как такого поля уже не будет
Сделай 3 миграции. 1) Добавить поле 2) кастомная миграция 3) удаление поля
Хорошо, попробую)
так не получается, когда пытаюсь достать всех своих родителей, то мне пишет, что такого поля нет, так как в классе больше нет поля с таким названием
Как так нет поля, если оно должно удалиться только после выполнения предыдущих двух?
Обсуждают сегодня