nrs*_*iro 12 python django django-models
我正在学习Django,我正在尝试理解项目中的models.py与应用程序的使用.从教程示例中可以看出,我在应用程序中包含了一个模型定义,但是当我将这些知识应用到我自己的现有数据库时,我遇到了困难.
我使用了一个我使用的数据库(当然是一个副本)并使用inspectdb生成了一个django模型的概念模式.我在项目级别做了这个,并假设我可以使用该项目的应用程序中的子模式编写应用程序.
但是通用教程,他们在应用程序的model.py中定义了模型.如果我这样做,我会重复已经在项目级别的模型(或部分模型),这似乎是一个错误和维护问题.
那么,在Django风格中,我如何使用项目模式(或部分模式)而无需在应用程序的models.py中重新定义它?
提前致谢.
Lud*_*mer 23
没有任何理由拥有"项目级别模型"(或"项目级别视图").您只需将功能拆分为单独的应用程序即可.
假设您正在为学校设计Intranet网站.你会有一个应用程序来处理学生的帐户,另一个应用程序生成时间表,而另一个应用程序用于内部留言板等.每个应用程序定义自己的模型(没有"项目级模型"),但应用程序可以导入彼此模型(因此留言板帖子可以有一个指向来自"学生"应用程序的学生的ForeignKey字段).
另请参阅James Bennett撰写的 DjangoCon 2008 "可重用Django应用程序"演示文稿.
Django 模型只能驻留在应用程序中,而不能驻留在项目本身中。默认情况下manage.py inspectdb输出models.py文件的内容,由您决定将其放在正确的位置。
在您的情况下,将整个内容放在一个应用程序中会更容易,然后将其拆分到有意义的地方。
我不确定当前版本的状态是什么,但是models在包中存在模块之前表明这是 django 应用程序并且可以放在INSTALLED_APPS列表中。