在 Django 中,使用 GenericForeignKey 时是否需要将 db_index 添加到 object_id?

In Django, do I need to add a db_index to object_id when using a GenericForeignKey?

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')

显示 object_id 没有 db_index=True

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

是否db_index=True假设是因为一些关于GFK的隐藏代码? 或者我应该在需要时包含它?

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