Как мне отделить мои модели в Django? - PullRequest
28 голосов
/ 04 апреля 2011

Я пытаюсь выучить Python / Django.

Прямо сейчас у меня есть все мои модели в models.py

Можно ли разбить мои модели так, чтобы я мог иметь один файл для модели в отдельной папке моделей, чтобы я мог сделать что-то вроде:

~ / MyProject / MyApp / модели / user.py ~ / MyProject / MyApp / модели / group.py

Спасибо

Ответы [ 2 ]

45 голосов
/ 04 апреля 2011

Это возможно, просто убедитесь, что вы импортировали все модели, которые вы создали в __init__.py, в каталог models.В вашем случае это выглядело бы так:

# __init__.py
from .user import UserModel
from .group import GroupModel

Это необходимо сделать, потому что Django ищет в app.models модели приложения.

Как уже упоминалось, для версийDjango до 1.7, вам также необходимо указать имя вашего приложения в атрибуте app_label в классе Meta в вашей модели:

class UserModel(models.model):
    # fields here

    class Meta:
        app_label = "myapp"

http://docs.djangoproject.com/en/1.7/ref/models/options/#app-label

4 голосов
/ 04 апреля 2011

у вас может быть папка с именем "models", но тогда в каждом классе моделей вам нужно будет указать:

class Meta:
    app_label="appname goes here"

* ps.Не забудьте файл __ init__.py, как я всегда. *

...