模型索引参考

Django 1.11中的新功能。

索引类轻松创建数据库索引。 可以使用Meta.indexes选项添加它们。 本文档介绍Index的API参考,包括索引的选项

引用内置索引

索引在django.db.models.indexes中定义,但为了方便起见,它们被导入到django.db.models中。 标准惯例是使用from django.db import models,并引用索引为models.<IndexClass>

Index的选项

class Index(fields=[], name=None)[source]

在数据库中创建一个索引(B-Tree)。

fields

Index.fields

需要索引的字段的名称列表。

默认情况下,每个列按照升序创建索引。 要以列的降序定义索引,请在字段名称之前添加连字符。

例如Index(fields=['headline', '-pub_date'])创建SQL (headline, pub_date DESC) MySQL不支持索引排序。 在这种情况下,创建降序索引作为正常索引。

支持SQLite上的列排序

SQLite 3.3.0+支持列排序,仅适用于某些数据库文件格式。 有关详细信息,请参阅SQLite文档

name

Index.name

索引的名称。 如果没有提供name,Django将自动生成一个名称。 为了兼容不同的数据库,索引名称不能超过30个字符,不能以数字(0-9)或下划线(_)开头。

请参见

有关PostgreSQL特定索引的列表,请参见django.contrib.postgres.indexes