
Корзина в Django: где хранить и как не потерять товары
Корзина в сессии живёт до логина, корзина в базе переживает вход и меняет пользователя — но требует чистки. Разбираем четыре подхода к хранению корзины в Django 5.x с их ценой.

Корзина в сессии живёт до логина, корзина в базе переживает вход и меняет пользователя — но требует чистки. Разбираем четыре подхода к хранению корзины в Django 5.x с их ценой.

Фильтр по цене, категории и брендам можно собрать на голых QuerySet, на django-filter или отдать в Elasticsearch. Разбираем цену каждого решения на живом каталоге с фасетами.

Личный кабинет — не одна вьюха, а десяток решений про профиль, права, редактирование данных и защиту чужих объектов. Разбираем рабочие подходы и их цену.

ImageField без ресайза кладёт в базу пути на 12-мегапиксельные фото, а браузер грузит их как есть. Разбираем, где обрабатывать изображения в Django и чем платит каждый подход.

Тесты вьюх на живом проекте валятся не там, где ждёшь: сессии, транзакции, кеш и внешние вызовы. Разбираем, что стоит проверять во вьюхах, а что уводит в фиктивное покрытие.

Экспорт данных в Excel кажется задачей на десять минут, но на большом отчёте выедает память и вешает воркер. Разбираем стриминг, форматы xlsx против csv и фоновую генерацию.

Отчёт на 40 страниц собирался 12 секунд и валил воркеры Gunicorn по таймауту. Разбираем, почему синхронная генерация PDF ломает Django-приложение и как её вынести из цикла запроса.

Платёжный шлюз шлёт вебхук, а ваша вьюха отвечает 200 через 8 секунд — и провайдер считает доставку неудачной. Разбираем три способа обработки входящих вебхуков в Django и цену каждого.

Перевод интерфейса, URL и контента из базы решаются разными инструментами. Разбираем, что делать штатной i18n, а где ставить django-parler или django-modeltranslation, и чем платишь за каждый выбор.

Флаг is_deleted кажется безобидным, пока не всплывают дубли в уникальных полях, утечки в related-запросах и объекты, которые «не удалились». Разбираем, что учесть при мягком удалении в Django 5.x.

Кто изменил цену товара с 1000 до 1 рубля и когда — типичный вопрос, на который проект без аудита ответить не может. Разбираем рабочие подходы к журналированию изменений моделей в Django.

Кнопка «Скачать CSV» на 500 000 строк кладёт воркер в таймаут. Разбираем, как отдавать выгрузки в Django без OOM: стриминг, генераторы, values() и вынос тяжёлых экспортов в очередь.