Sobes.tech
Back to questions
Junior — Middle
63

Каким образом реализуются индексы в ORM Django?

Answer from AI

sobes.tech AI

В Django индексы реализуются на уровне модели через мета-класс Meta. Для создания индекса можно использовать атрибуты index_together, unique_together или новый более гибкий indexes, где можно явно указать тип индекса и поля.

Пример создания индекса:

from django.db import models
from django.db.models import Index

class Product(models.Model):
    name = models.CharField(max_length=100)
    category = models.CharField(max_length=50)

    class Meta:
        indexes = [
            Index(fields=['name', 'category'], name='name_category_idx'),
        ]

При миграции Django создаст соответствующий индекс в базе данных. Индексы помогают ускорить поиск и сортировку по указанным полям.

Также можно создавать уникальные индексы с помощью unique=True в поле модели или unique_together для нескольких полей.