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 с помощью любой из моделей.