django syncdb后面跟着的步骤

时间:2013-06-13 19:10:52

标签: python django

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()以外的任何其他地方吗?

2 个答案:

答案 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,因此请再次检查