Django
ORM Queries
filter, Q objects, and select_related
ORM Queries
from django.db.models import Q, Count
# Filter
Task.objects.filter(is_done=False, project__owner=request.user)
# Q objects
Task.objects.filter(Q(priority="high") | Q(due_date__lt=today))
# Annotations
Project.objects.annotate(task_count=Count("tasks"))
# Performance: avoid N+1
tasks = Task.objects.select_related("project").prefetch_related("tags")
Production: Use Django Debug Toolbar in dev to spot duplicate queries; add select_related / prefetch_related before launch.