Junior — Middle
Tudná magyarázni, hogy mit értünk absztrakt modell alatt a Django-ban, és hogyan használják?
sobes.tech MI
Válasz az MI-től
В 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. Это помогает избежать дублирования кода при работе с общими полями.