Django 2 1 3 模型層 索引

2021-09-02 22:44:25 字數 1253 閱讀 3667

索引類可輕鬆建立資料庫索引。可以通過meta.indexes選項新增它們 。本文件解釋了索引的api引用和index 選項。

引用內建索引

索引是在django.db.models.indexes中定義的,但為方便起見,它們被匯入到 django.db.models。標準約定是使用from django.db import models和引用索引models.<indexclass>。

class index(fields=(), name=none, db_tablespace=none)

在資料庫中建立 b樹 索引。

index.fields

要建立索引的欄位名稱的列表或元組。

預設情況下,為每列建立乙個公升序的索引。要為列定義具有降序的索引,請在欄位名稱前新增 連字元-

例如index(fields=['headline', '-pub_date'])將建立sql類似(headline, pub_date desc)。不支援在mysql上的索引排序。在這種情況下,將降序索引建立為普通索引。

在django 2.1中更改

舊版本不接受元組。

index.name

索引的名稱。如果沒有提供name,django將自動生成乙個名稱。為了與不同資料庫相容,索引名稱不能超過30個字元,並且不應以數字(0-9)或下劃線(_)開頭。

index.db_tablespace

django 2.0中的新功能

用於此索引的資料庫表空間的名稱。對於單字段索引,如果未提供db_tablespace,則在字段中的db_tablespace中建立索引。

如果field.db_tablespace未指定(或者索引使用多個字段),則db_tablespace在模型內的class meta選項中指定的表空間中建立索引 。如果這兩個表空間都未設定,則索引將在與表相同的表空間中建立。

參見

有關postgresql特定索引的列表,請參閱 django.contrib.postgres.indexes。

Django 2 1 3 模型層 Model類

完本文件涵蓋了該model類的功能。有關模型的更多資訊,請參閱模型參考指南的完整列表。每個非抽象model類都必須新增乙個 manager例項。django確保在您的模型類中至少指定了乙個預設的manager。如果你不新增自己的manager,django將新增乙個包含預設 manager例項的ob...

Django 模型層 模型

django內建模型方法 乙個模型包含了資料的字段和操作方法,每個模型對映為一張資料庫中的表 person models.py from django.db import models class person models.model first name models.charfield max...

Django筆記 模型層

1 模型類定義 模型定義的基本結構 from django.db import models class modelname models.model field models.xxfield field models.xxfield class meta db table other metas ...