我会按照这些思路做一些事情:
MyProject/
|- films/
|- __init__.py
|- urls.py
|- models/
|- __init__.py
|- genre.py
|- actor.py
|- title.py
|- actorrole.py //M2M through with actors and their roles in specific titles
|- admin/
|- __init__.py
|- genre.py
|- actor.py
|- title.py
|- views/
|- __init__.py
|- someview.py
|- myproject/
|- __init__.py
|- urls.py
|- wsgi.py
|- settings/
|- __init__.py
|- production.py
|- staging.py
|- local.py
3 或 4 个模型并不多,我会将其分散到多个应用程序中。但是为了组织,将模型和管理类保存在单独的文件中,并将它们导入文件夹__init__.py
的
重要笔记:
在您的模型中,确保您在内部 Meta 类中包含 app_name。
class Genre(models.Model):
...
class Meta:
app_label = _(u'films') #app's name
...
确保任何 FK 都作为字符串而不是类传递(有助于避免循环依赖)
title = models.ForeignKey("films.Title")
在您的films/models/__init__.py
导入中以正确的顺序进行,以免产生循环依赖。
from films.models.genre import Genre
from films.models.actor import Actor
from films.models.title import Title
from films.models.actorrole import ActorRole
在您的films/admin/__init__.py
注册每个管理类
from django.contrib import admin
from lottery.models import Genre, Actor, Title
from lottery.admin.actor import ActorAdmin
admin.site.register(Actor, ActorAdmin)
...