Что такое прокси модель в Django
Python
Middle
Без компании
Что такое прокси модель в Django
Ответы
Прокси-модель в Django — это модель, которая наследует от другой модели, но не создаёт новую таблицу в БД. Она использует ту же таблицу, что и родительская модель, но может изменять поведение (например, сортировку, менеджер или методы).
**Основные особенности:**
- Не создаёт отдельную таблицу в БД.
- Может переопределять менеджер, методы, мета-опции (ordering, verbose_name).
- Полезно для создания разных "представлений" одной модели.
**Пример:**
```
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class MyPerson(Person):
class Meta:
proxy = True
ordering = ["last_name"]
def full_name(self):
return f"{self.first_name} {self.last_name}"
```
Здесь `MyPerson` — прокси-модель для `Person`. Записи хранятся в одной таблице, но `MyPerson` добавляет метод `full_name()` и изменяет сортировку по умолчанию.