我需要在这个 Django 模型中添加一个 db_index 吗?

Posted

技术标签:

【中文标题】我需要在这个 Django 模型中添加一个 db_index 吗?【英文标题】:Do I need to add a db_index to this Django model? 【发布时间】:2011-06-17 16:54:36 【问题描述】:
class Comments(models.Model):
    content = models.ForeignKey(Content)

我需要将 db_index 添加到“内容”吗?还是会因为它是外键而自动编入索引?

【问题讨论】:

【参考方案1】:

除非另有说明,否则将为ForeignKey 创建索引。相关源码:

class ForeignKey(RelatedField, Field):
    # snip
    def __init__(self, to, to_field=None, rel_class=ManyToOneRel, **kwargs):
        # snip
        if 'db_index' not in kwargs:
            kwargs['db_index'] = True

【讨论】:

要禁止在 ForeignKey 上创建索引,设置 db_index=False: code.djangoproject.com/ticket/13730

以上是关于我需要在这个 Django 模型中添加一个 db_index 吗?的主要内容,如果未能解决你的问题,请参考以下文章

带有_id的Django后缀ForeignKey字段

由于没有表实例,Django不允许向DB添加记录

如何在一个购物车中添加多个模型(Django)

使用迁移向 Django 中的模型字段添加索引

Flask 图片对应

如何将 Django 的身份验证用户模型配置为具有 UUID(Postgres DB)