@cehka

Как не выполнять определённый кусок кода при makemigrations?

Нужно, что бы кусок кода из __init__ приложения Django не выполнялся при makemigrations и прочих командах.
Мне нужно из за того, что в __init__ у меня начинается поток и при makemigrations консоль просто застывает, при том ещё и миграции сами не работают.
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Вообще-то выглядит как какая-то ошибка проектирования...
Ну да ладно - в качестве решения - добавьте в ваш __init__.py условие, которое не будет запускать ваш процесс, если запустили makemigrations .

К примеру как-то так в __init__.py:
import sys

if not 'makemigrations'  in sys.argv:
   ... начинается поток ...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@FulTupFul
Если я не ошибаюсь то файл __init__.py раньше служил для определения папки, как пространство имён. Он не играет никакой роли.
Для того чтобы Django не фиксировала миграции при команде makemigrations вы можете на время миграции отключить приложение в INSTALLED_APPS.
Если вы не хотите чтобы модель была создана в базе тогда в настройках модели пропишите:
class Foo(models.Model):
    .................
    class Meta:
        managed = false

тогда модель не попадет в миграцию
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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