【发布时间】:2011-12-06 22:42:46
【问题描述】:
我是 Django 新手,所以我不知道答案是否显而易见。我在一个项目中创建了models.py,当我尝试syncDB时,它没有创建models.py中定义的表。只有当我在应用程序中创建 models.py 并在使用 INSTALLED_APPS 注册应用程序后,才会在 syncDB 上创建表。
这就是 Django 的工作方式吗?还是我错过了什么。
【问题讨论】:
标签: django django-models
我是 Django 新手,所以我不知道答案是否显而易见。我在一个项目中创建了models.py,当我尝试syncDB时,它没有创建models.py中定义的表。只有当我在应用程序中创建 models.py 并在使用 INSTALLED_APPS 注册应用程序后,才会在 syncDB 上创建表。
这就是 Django 的工作方式吗?还是我错过了什么。
【问题讨论】:
标签: django django-models
Django 只同步INSTALLED_APPS 中定义的内容。这个名字很直接。 Django 至少会寻找一个模块(带有__init__.py 的目录),其中包含models.py 文件。所以是的,您需要一个“应用程序”,但该应用程序可以只是一个目录,其中只有 __init__.py 和 models.py 文件。
【讨论】:
syncdb 为尚未创建表的所有INSTALLED_APPS 中的应用程序创建数据库表。
【讨论】:
是的——我认为模型只能存在于应用程序中(Django 中的几乎所有东西都必须是应用程序)。
文档的以下部分暗示了这一点,即使它没有直接说出来:
教程的这一部分有点解释了应用程序:
【讨论】: