Sobes.tech
Back to questions
Junior — Middle
67

Можете объяснить, что подразумевается под абстрактной моделью в Django и как она используется?

Answer from AI

sobes.tech AI

В Django абстрактная модель — это базовый класс модели, который не создаёт отдельную таблицу в базе данных, но позволяет наследовать общие поля и методы в дочерних моделях. Это удобно для повторного использования кода и организации моделей.

Чтобы создать абстрактную модель, в её классе внутри Meta указывают abstract = True:

from django.db import models

class TimestampedModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

class Article(TimestampedModel):
    title = models.CharField(max_length=100)
    content = models.TextField()

В этом примере TimestampedModel не создаёт таблицу, но поля created_at и updated_at будут унаследованы моделью Article. Это помогает избежать дублирования кода при работе с общими полями.