Встречается на собеседованиях • сегодня
Как расширить стандартную модель в БД
Для расширения стандартной модели в Django можно использовать несколько подходов:
- Наследование моделей
- Абстрактная модель (не создает отдельную таблицу):
pythonclass BaseModel(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True
class UserProfile(BaseModel):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField()
text
2. **Proxy-модель** (расширяет функциональность без изменения таблицы):
```python
class ExtendedUser(User):
class Meta:
proxy = True
def get_full_name(self):
return f"{self.first_name} {self.last_name}"-
OneToOneField (для связи с существующей моделью):
pythonclass Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) phone = models.CharField(max_length=20) -
Монки-патчинг (динамическое добавление методов):
pythonUser.add_to_class('get_display_name', lambda self: f"{self.username.upper()}")
Выбор зависит от задачи: абстрактные модели для общих полей, proxy — для методов, OneToOne — для хранения доп. данных.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы