Mediumdjangoorm
Что такое Django ORM?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Django ORM — встроенный object-relational mapping. Models → таблицы БД, QuerySet API для запросов.
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
# Миграции: python manage.py makemigrations && migrate
# QuerySet API
User.objects.all()
User.objects.filter(age__gte=18) # __gt, __gte, __lt, __contains, __in
User.objects.get(id=1)
User.objects.create(name='Alice')
# Q objects — сложные OR/AND
from django.db.models import Q, F, Count, Avg
User.objects.filter(Q(name='A') | Q(name='B'))
User.objects.update(age=F('age') + 1) # ссылка на поле
User.objects.annotate(post_count=Count('post'))- Relations:
ForeignKey,ManyToManyField,OneToOneField; select_related(JOIN для FK) иprefetch_related(для M2M) — оптимизация N+1;
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.