django syncdb如何工作?
在我的项目中,我已将admins.py放在项目根文件夹中。
这是文件夹结构
src
|
----proj1
| |
| -------- settings.py
| -------- urls.py
|
----forum
|
-------- admins.py
-------- models.py
-------- views.py
这里的论坛是一个django应用程序。而proj1是根。
当我尝试执行syncdb时,它会提供以下输出。
Installed 0 object(s) from 0 fixture(s)
任何人都可以告诉我这个syncdb如何工作(它执行的步骤顺序是什么)来创建数据库?这里,它没有根据forum-> models.py创建表。我应该提到除了INSTALLED_APPS和admin.site.register()以外的任何其他地方吗?
答案 0 :(得分:2)
Syncdb基本上为所有应用程序创建数据库表,并加载可能需要为应用程序加载的任何“fixture”(初始数据)。
例如,您可能将特定对象的“类别”作为必填字段,用户无法更改。你可以将它们作为固定装置加载。
消息Installed 0 object(s) from 0 fixture(s)
表示对于此特定型号,没有提供固定装置。
您可以阅读有关fixtures here
的更多信息当您查看source for syncdb时,您可以看到表已创建,然后调用load_initial_data
。
答案 1 :(得分:0)
再次编辑proj1 / settings.py文件,并更改INSTALLED_APPS设置以包含字符串'forum'。所以它看起来像这样:
INSTALLED_APPS = (
'django.contrib.admin',
......
'forum',
)
并在models.py中编写模型类 例如: -
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
写完模型后再运行syncdb命令
注意: - 您已编写admins.py但文件名应为admin.py,因此请再次检查