{Django Öğreniyorum}
Günümüz kusursuzcuları için ağ çatısı

Kalıp dizini kaynakça / Model index reference

Django 1.11. da yeni

İndeks sınıfları, veritabanı dizinlerinin oluşturulmasını kolaylaştırır. Meta.indexes seçeneğini kullanarak eklenebilirler. Bu belge, indeks seçeneklerini içeren Indexin API kaynakçalarını açıklamaktadır.

Yerleşik dizinlere başvurma

İndeksler django.db.models.indexes‘de tanımlanır. Ancak kolaylık sağlamak için django.db.models içine aktarılırlar. Standart kural, from django.db import models kullanmak ve indeksler için kalıp olarak başvurmaktır. <IndexClass>

Index seçenekleri

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

Veritabanında bir indeks (B-Tree) oluşturur.

fields

Index.fields

Dizinin (indeks) istenildiği alanların adının bir listesi.

Varsayılan olarak, dizinler her sütun için artan bir sıra ile oluşturulur. Bir sütun için azalan bir dizin olan bir dizini tanımlamak için, alanın adından önce tire ekleyin.

Örneğin, Index(fields=[‘headline’, ‘-pub_date’]) (headline, pub_date DESC) ile SQL oluşturur. Dizin isteği MySQL’de desteklenmiyor. Bu durumda, azalan bir dizin normal bir dizin olarak oluşturulur.

SQLite üzerinde sütun sıralamasını destekler

Sütun sıralaması, SQLite 3.3.0+ ve yalnızca bazı veritabanı dosya biçimleri için desteklenir. Konular için SQLite belgelerine bakın.


name

Index.name

İsim dizinindir. İsim yani name verilmemişse Django doğal olarak bir isim çıkaracaktır. Farklı veritabanları ile uyumluluk için dizin isimleri 30 karakterden uzun olamaz ve bir sayı (0-9) veya altçizgi ( _ ) ile başlaması gerekir.


db_tablespace

Index.db_tablespace

Django 2.0. da yeni

Bu dizin için kullanılacak veritabanı tablolarının adı. Tek alan dizinleri için, db_tablespace belirtilmemişse, alanının db_tablespace‘inde dizin oluşturulur.

Field.db_tablespace belirtilmemişse (veya dizin birden fazla alan kullanıyorsa), kalıbın sınıf Meta’sındaki db_tablespace seçeneğinde belirtilen tablolama alanında oluşturulur. Bu tablolardan hiçbiri ayalanmazsa, dizin tabloyla aynı tablolama alanında oluşturulur.

Ayrıca bakınız

PostgreSQL’e özgü dizinlerin bir listesi için bkz: django.contrib.postgres.indexes

Kalıp alanı kaynakçası (Model field references) Kalıp _meta API (Model _meta API)