Proxy-модели

Proxy-модели используются для изменения поведения модели, например, чтобы включить дополнительные методы или различные мета параметры. Обе модели работают в таблице базы данных исходной модели. Чтобы создать proxy-модель, добавьте proxy=True в класс Meta вашей модели.

В следующем примере показано, как создать прокси-модель:

from django.db import models
from django.utils import timezone


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


class OrderedContent(BaseContent):

    class Meta:
    proxy = True
    ordering = ['created']

    def created_delta(self):
    return timezone.now() - self.created

Здесь мы определим модель OrderedContent, которая является proxy-моделью для модели Content. Эта модель обеспечивает сортировку по умолчанию для QuerySets и дополнительного метода created_delta(). Обе модели, Content и OrderedContent работают в одной и той же таблице базы данных, а объекты доступны через модель ORM с помощью любой из моделей.

results matching ""

    No results matching ""