Back to questions
Junior — Middle
58
Какие методы расширения модели в Django тебе знакомы?
Answer from AI
sobes.tech AI
В Django есть несколько способов расширения модели:
- Наследование моделей:
- Абстрактные базовые классы — создают общие поля и методы, не создавая отдельной таблицы.
- Многоуровневое наследование — дочерняя модель наследует поля и методы родительской.
- OneToOneField (расширение через связь) — создается отдельная модель с полем OneToOne к базовой модели, что позволяет добавлять дополнительные поля без изменения исходной модели.
- Proxy-модели — позволяют изменить поведение модели (например, методы), не меняя структуру базы данных.
Пример расширения модели через OneToOneField:
from django.contrib.auth.models import User
from django.db import models
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(blank=True)