170 похожих чатов

У меня есть модель с полем subtopics М2М (Типо тема и

у неё подтемы, ссылка на свою же модель)
Но я хочу сделать ее FK и назвать parent_topic
В миграциях я бы хотел вытащить первого родителя и сохранить его а потом вставить в новое поле parent_topic
Как можно это сделать?

6 ответов

14 просмотров

Какие тут проблемы? Добавляется миграция через makemigrations —empty. Далее пишется миграция через migrations.RunPython. Получить нужные топики, annotate(count_child=Count('subtopics')).exclude(count_child=0) тут все инстансы у которых есть подтопики. Всё это в for x in qs, у каждого инстанса x.subtopics.update(parent=x)

Damron-Nafikov Автор вопроса

А, хм, получается я достаю по родителю для топика(если есть) Где-то это сохраняю, потом делаю миграции и уже опять свой скрипт Но я ведь уже изменю класс и там не будет поля subtopics, а будет новый parent_topic Джанго же тогда мне ошибку даст, когда в первом скрипте сделаю Topic.objects.annotatate(ccount=Count(‘subtopics’)) Так как такого поля уже не будет

Сделай 3 миграции. 1) Добавить поле 2) кастомная миграция 3) удаление поля

Damron-Nafikov Автор вопроса

Хорошо, попробую)

Damron-Nafikov Автор вопроса

так не получается, когда пытаюсь достать всех своих родителей, то мне пишет, что такого поля нет, так как в классе больше нет поля с таким названием

Как так нет поля, если оно должно удалиться только после выполнения предыдущих двух?

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта