Абстрактные модели

Абстрактная модель — это базовый класс, в котором определяются поля, которые необходимо включить во все дочерние модели. Джанго не создает таблицу базы данных для абстрактных моделей. Для каждой дочерней модели создается таблица базы данных, включая поля, унаследованные от абстрактного класса, и те, которые определены в дочерней модели.

Чтобы пометить модель как абстрактную, необходимо добавить abstract=True в класс Meta . Джанго узнает, что это абстрактная модель и не создаст для нее таблицу базы данных. Чтобы создать дочерние модели, необходимо наследовать абстрактную модель. Ниже приведен пример абстрактной модели Content и дочерней модели Text.

from django.db import models


class BaseContent(models.Model):
    title = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)

    class Meta:
        abstract = True


class Text(BaseContent):
    body = models.TextField()

В этом случае Джанго создаст таблицу только для модели Text, включая поля title, created, и body.

results matching ""

    No results matching ""