Встречается на собеседованиях • сегодня

В Django есть абстрактные модели, полиморфизм, инстансы — как ты проектировал и работал с подобными моделями

Абстрактные модели в Django использую для вынесения общих полей и методов в базовый класс, который не создает таблицу в БД. Например:

python
class BaseModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    
    class Meta:
        abstract = True

class Post(BaseModel):
title = models.CharField(max_length=100)

text

Для полиморфизма применяю `django-polymorphic` или `ContentType`. Пример с polymorphic:

```python
from polymorphic.models import PolymorphicModel

class Animal(PolymorphicModel):
    name = models.CharField(max_length=100)

class Dog(Animal):
    bark = models.CharField(max_length=100)

class Cat(Animal):
    meow = models.CharField(max_length=100)

Инстансы работают стандартно, но с учетом полиморфизма. Например, Animal.objects.all() вернет объекты всех подклассов. Для абстрактных моделей важно не пытаться создавать их инстансы напрямую.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы