0

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() 之外,我还应该提及其他任何地方吗?

4

2 回答 2

2

Syncdb基本上为所有应用程序创建数据库表,并加载可能需要为应用程序加载的任何“夹具”(初始数据)。

例如,您可能将特定对象的“类别”作为必填字段,用户无法更改该字段。您可以将它们加载为固定装置。

该消息Installed 0 object(s) from 0 fixture(s)表明,对于此特定型号,没有提供固定装置。

您可以在此处阅读有关固定装置的更多信息

当您查看syncdb 的源代码时,您可以看到表已创建,然后load_initial_data被调用。

于 2013-06-13T19:14:04.327 回答
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,所以再检查一遍

于 2013-06-14T10:57:47.177 回答