Я пытаюсь создать вложенное приложение в моем проекте django, но makemigrations
не обнаруживает его.У меня есть следующая структура каталогов:
myproject/
├── db.sqlite3
├── manage.py
├── myproject
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── parentapp
├── admin.py
├── apps.py
├── childapp
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
А вот соответствующий код:
myproject / myproject / settings.py:
INSTALLED_APPS = [
...
'parentapp',
'parentapp.childapp',
]
myproject / parentapp / childapp / __ init__.py:
default_app_config = "parentapp.childapp.apps.ChildAppConfig"
myproject / parentapp / childapp / apps.py:
from django.apps import AppConfig
class ChildAppConfig(AppConfig):
name = 'parentapp.childapp'
myproject / parentapp / childapp / models.py:
from django.db import models
class Child(models.Model):
class Meta:
app_label = "parentapp.childapp"
name = models.CharField(max_length=100)
При попытке выполнить миграцию я вижу следующее поведение:
$ myproject/manage.py makemigrations
No changes detected
$ myproject/manage.py makemigrations childapp
No changes detected in app 'childapp'
$ myproject/manage.py makemigrations parentapp.childapp
'parentapp.childapp' is not a valid app label. Did you mean 'childapp'?
Что яделать неправильно?Я вижу множество других многократно используемых приложений, которые имеют вложенные приложения (например, django-allauth).