【问题标题】:Django not creating tables for an installed appDjango没有为已安装的应用程序创建表
【发布时间】:2012-02-24 17:50:33
【问题描述】:

在我安装 Lion 之前,我的 django 站点正在运行,并且必须重新安装与开发相关的所有内容。从那时起,我删除并重新创建了我的数据库,但是我安装的两个应用程序之一在 syncdb 中被忽略了。我的数据库中没有这些表。

This post 建议可能存在导入错误。我可以使用 manage.py shell 导入有问题的应用程序,所以我不认为就是这样。

这两个应用程序都已确定安装(通过调试工具栏验证)。还有其他建议吗?我对 Django 比较陌生,过去几年主要是一名 iOS 开发人员。

【问题讨论】:

  • 您确定将它们包含在您的 settings.py 的 INSTALLED_APPS 列表中吗?
  • syncdb 输出也不错
  • 在我的 settings.py 的 INSTALLED_APPS 列表中,它们绝对是 100% 肯定的,调试工具栏也是如此。
  • 绝对在INSATLLED_APPS中。
  • 啊——我的第二个安装的应用程序有一个层次结构,这就是问题所在。模型位于应用程序的文件夹中,而不是应用程序本身。不知道为什么它之前工作......我在安装狮子后从 postgresql 切换回 sqlite3,但我怀疑可能是这样。其他一切都没有改变......

标签: django django-syncdb


【解决方案1】:

https://docs.djangoproject.com/en/dev/ref/models/options/#app-label

如果模型存在于标准 models.py 之外(例如,如果应用的模型位于 myapp.models 的子模块中),则模型必须定义它属于哪个应用。

它没有提到的是,它们还必须在模型注册阶段的某个地方导入。

【讨论】:

    猜你喜欢
    • 2017-05-13
    • 1970-01-01
    • 2012-07-14
    • 2015-06-16
    • 2013-01-10
    • 2010-09-14
    • 1970-01-01
    • 2016-09-02
    • 2016-07-07
    相关资源
    最近更新 更多