Улучшения, показаны 50 из 102.
Сейчас цена заказа может оказаться отрицательной, по крайней мере база данных такого не запрещает. Можно …
Записи в БД просто не имеют смысла без некоторых полей. Ниже несколько примеров таких ситуаций: …
`annotate` и `aggregate` выполняют схожие задачи: снижают количество запросов к БД. Но в то время …
Когда другой программист захочет развернуть проект, то первым делом он пойдёт искать переменные окружения в …
Дефолтные значения нужны для того, чтобы оставлять какие-то поля незаполненными и при этом ни о …
Вообще, в питоне не принято сильно заботиться о памяти. Но это до тех пор, пока …
Допустим, вы пишете сериализатор для модели `YoutubeVideo`: ```py class YoutubeVideoSerializer(ModelSerializer): class Meta: model = User …
Django создаёт исключения `DoesNotExist` и `MultipleObjectsReturned` как атрибуты каждой модели, чтобы можно было обработать ошибку …
Транзакции позволяют объединить несколько запросов к БД в одну неделимую операцию. Либо сработают все запросы, …
Методы `QuerySet` возвращают либо итоговое число/объект, либо новый `QuerySet`. Этот новый QuerySet позволяет продолжить настройку …
Для поиска записей в БД сейчас вы используете не `id`, а своё собственное поле-ключ, и …
После `BASE_DIR` папка верхнего уровня у всех путей одна
В Django ORM есть отдельное поле для картинок, отдельное для файлов, для чисел всех мастей... …
Вам можно отправить пустой заказ, вообще без товаров. Не очень понятно как поведёт себя система …
Сейчас количество товаров в заказе может оказаться отрицательным, по крайней мере база данных такого не …
Импорт настроек проекта напрямую из файла `settings.py` ломает механизм конфигурации Django. Проблем здесь сразу несколько. …
Вы использовали старую форму записи функции `super()`, так её оформляли ещё во втором питоне. Сейчас …
В Django принято заканчивать адреса страниц слэшом `/`: `/some/page/`. Это правило позволяет избежать путаницы в …
Поле `JSONField` позволяет хранить в БД любую структуру данных. Иногда, это важный плюс, но чаще …
Запросы в Django ORM бывают большими и сложными. Даже десять строк кода на один запрос …
В Django код запросов к БД имеет свойство распухать до неприличных размеров. И чем длиннее …
Настройка `SECRET_KEY` очень важна для django-проекта. По сути, это так называемая соль (salt), отвечающая за …
Это не какая-то проблема в коде, просто хотел посоветовать попробовать [декоратор @register](https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#the-register-decorator). Так регистрация моделей …
Реверс-прокси -- это посредник, задача которого "передать" запрос от внешнего клиента ко внутреннему веб-сервису. При …
Контейнеризация с помощью Docker требует разделить поставку приложения на две фазы: сборка и запуск. За …
Сборщики фронтенда, такие как Webpack и Parcel, поставляются вместе с отладочным сервером на Node.js, умеющем …
Методы `QuerySet` возвращают либо итоговое число/объект, либо новый `QuerySet`. Этот новый QuerySet позволяет продолжить настройку …
В Django код запросов к БД имеет свойство распухать до неприличных размеров. И чем длиннее …
В файле settings.py есть настройка `ALLOWED_HOSTS`, она нужна для безопасности вашего сайта, защищает вас от …
Если имя пользователя не влезет в вашу БД — ему будет неприятно. Если адрес не …
Почему это поле -- уникально? Разве в БД не может быть несколько записей с одинаковым …
У каждой записи в этом поле обязательно должны быть разные значения. Одинаковых быть не может, …
Разбиение проекта по приложениям нужно как раз для того, чтобы в проекте можно было очень …
Функция `get_object_or_404` нужна для View. Вне View её использовать не стоит. Вместо неё лучше используйте …
В файле settings.py есть настройка `SECRET_KEY` — это секретный ключ, с помощью которого шифруют пароли …
Запуск migrate может поломать ещё работающую старую версию Django. Чтобы простой сайта был меньше, лучше …
Почему-то на сервере все зависимости Python поставлены на уровне системы вместо виртуального окружения. Это помешает …
Деплойный скрипт -- не одноразовый. Это часть кода, часть его поставки. Его тоже нужно будет …
Сейчас ваш сайт запущен как бы "в режиме продакшна", но у сайта включен дебаг. Из-за …
**Что сделано, то сделано.** Но больше так не делайте, пожалуйста. Django работает с миграциями примерно …
Сериализатор может сам создавать модели, если он унаследован от `ModelSerializer`, или если у него есть …
Если вы используете сериализатор, в котором вложено несколько других сущностей, то вместо такой записи: ```py …
Дефолтные значения должны быть безопасными. В этом их смысл: иногда настройки с дефолтными значениями будут …
Запросы с использованием `filter` или `exclude` требуют от базы данных проверки каждой записи в таблице …
Для статики есть специальное место: папка `static/` в корне репозитория. Если программисту понадобится поменять что-нибудь …