【问题标题】:In Django, do I need to add a db_index to object_id when using a GenericForeignKey?在 Django 中,使用 GenericForeignKey 时是否需要将 db_index 添加到 object_id?
【发布时间】:2016-01-13 14:19:52
【问题描述】:

Django 的示例代码在https://docs.djangoproject.com/es/1.9/ref/contrib/contenttypes/

content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')

显示没有db_index=True的object_id

虽然object_id 可能会用于连接操作。

db_index=True 是否因为一些关于 GFK 的隐藏代码而被假定? 还是应该在需要时包含它?

【问题讨论】:

  • 这里没有JOIN操作;这不是真正的外键,而是 GFK。

标签: django generic-foreign-key


【解决方案1】:

是的,您应该自己使object_id 字段可索引。 从 1.9 开始,Django doesn't do 任何魔法。

【讨论】:

  • 我检查了 1.5 版本 - 还是一样。所以我怀疑它曾经这样做过。
猜你喜欢
  • 2016-04-17
  • 2017-05-20
  • 2011-06-17
  • 1970-01-01
  • 2015-08-12
  • 2011-08-05
  • 1970-01-01
  • 2020-08-26
  • 2012-06-24
相关资源
最近更新 更多