Чтобы разместить мои модели в подпапках, я попытался использовать мета-поле app_label, как описано здесь.
Моя структура каталогов выглядит так:
- Проект
- приложения
- Foo
- модели
- __ __ INIT. Ру
- bar_model.py
- модели
- Foo
- приложения
В bar_model.py я определяю свою модель следующим образом:
from django.db import models
class SomeModel(models.Model):
field = models.TextField()
class Meta:
app_label = "foo"
Я могу успешно импортировать модель следующим образом:
from apps.foo.models.bar_model import SomeModel
Однако запуск:
./manage.py syncdb
не создает таблицу для модели. Однако в подробном режиме я вижу, что приложение "foo" правильно распознано (оно находится в INSTALLED_APPS в settings.py). Перемещение модели на models.py под foo действительно работает.
Существует ли какое-то конкретное соглашение, не документированное с помощью app_label или со всем механизмом, который предотвращает распознавание этой структуры модели с помощью syncdb?