Невозможно сделать миграции в Django

Постановка проблемы:

  • Я пытаюсь создать новую модель в новом файле - app1/models/model2.py
  • .
  • Я не вижу никакой ошибки, когда я пытаюсь сделать makemigrations.
  • Но Django не обнаруживает никаких изменений.
  • Если я помещаю тот же код в мой предыдущий файл app1/models/model1.py - makemigrations работает.
  • Я пробовал - python manage.py makemigrations app1 & python manage.py makemigrations

Моя базовая модель:

from django.db import models


class Xyz(models.Model):
    name = models.CharField(max_length=100)

Я пробовал через pycharm и обычный терминал. Я использую UBuntu 20.04LTS.

Я удалил все файлы миграции, затем повторил makemigrations для app1, он выбрал только старые изменения. не выбрал новую Xyz модель.

Возможно, есть что-то неправильное в том, как я создаю этот новый файл model2.py. Но я создаю его нормально, как model1.py. Я даже пытался скопировать вставить и переименовать тот же файл. Во всех моих папках есть init.py.

Попробуйте импортировать класс app1.models.model2.Xyz в класс app1/models/__init__.py, как это было решено на моей стороне.

app/models/model2.py

from django.db import models


class Xyz(models.Model):
    name = models.CharField(max_length=100)

Запуск 1: Неудачный

app/models/__init__.py

from models.model1 import *

Сделать миграции

$ python3 app/manage.py makemigrations
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SELECT VERSION(); args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SHOW FULL TABLES; args=None
No changes detected

Запуск 2: Успешный

app/models/__init__.py

from models.model1 import *
from models.model2 import Xyz  # Add this line

Сделать миграции

$ python3 app/manage.py makemigrations
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SELECT VERSION(); args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SHOW FULL TABLES; args=None
Migrations for 'app':
  app/migrations/0002_xyz.py
    - Create model Xyz
Вернуться на верх