【问题标题】:Django - ContentType Does Not Exist for own appDjango - 自己的应用程序的 ContentType 不存在
【发布时间】:2015-11-29 20:50:30
【问题描述】:

我正在尝试学习如何使用 ContentTypes 框架,但我似乎无法让它找到我自己的应用程序。

文档have clear instructions 用于从 django.contrib.sites 导入模型,这对我有用。但是,当我尝试替换自己的应用程序和模型时,我没有成功。

我在 MyApp.Events.models.Event 有一个模型。我试着打电话:

i = ContentType.objects.get(app_label="Events", model="Event")

作为响应,控制台打印:

django.contrib.contenttypes.models.DoesNotExist:ContentType 匹配 查询不存在。

我也试过了,也失败了:

i = ContentType.objects.get(app_label="events", model="event")

我有'django.contrib.contenttypes' 以及已安装应用程序下列出的这个应用程序。我是否缺少其他设置来启用此功能?

【问题讨论】:

  • 你运行迁移了吗?
  • 是的,我已经运行了所有迁移并重新启动了 shell。
  • 你能通过上面的查询找到shell中的内容类型吗?
  • 所以 contenttype 表是空的?
  • 酷,很高兴你得到它;)

标签: django django-contenttypes


【解决方案1】:

由于没有其他人发布它,这里是解决方案。

i = ContentType.objects.get(app_label="Events", model="event")

即使您的模型在models.py 中大写,它也会以全小写形式保存。我不知道这是 Django 的有趣想法还是 PostgreSQL 的想法,所以你的里程可能会有所不同。

【讨论】:

  • 很好的答案,我想指出 SQLite3 用户可能会遇到类似的情况,并且模型也以小写形式保存。所以这个答案也可以。更多用户注意:尝试在数据库 django_content_type 中查找正确的名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2010-10-04
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多