Улучшения, показаны 50 из 102.
Любое непустое значение в переменной окружения включает отладочный режим, даже если это `DEBUG=FALSE`.
Метод `all()` нужен для того, чтобы запросить у менеджера объектов `Book.objects` первый объект запроса — …
В файле settings.py есть настройка `SECRET_KEY` — это секретный ключ, с помощью которого шифруют пароли …
В файле settings.py есть настройка `DEBUG`, она включает отладочный режим работы сайта. На локальной машине …
Менеджерам будет сложно наполнять БД, если все поля являются обязательными для заполнения. Часто всех нужных …
У поля `ForeignKey` в модели данных есть обязательный атрибут `on_delete`, он задает правило удаления записей …
Если в CharField разрешить хранить `None`, то в каждом запросе к базе придется указывать сразу …
Если обновление в коде требует изменений структуры БД, а файлов с миграциями в репозитории не …
Запросы к базе данных — одна из самых медленных операций в работе сайта. Если откинуть …
Поиск записи в базе данных по ключу, например, по `id` или `slug`, требуется настолько часто, …
Использование метода `create` в коде дата-миграции часто мешает запустить её повторно — каждый запуск создает …
Атрибут `verbose_name` задает те названия, что получат поля модели данных при отображении в админке. Русскоязычный …
Писать запросы к БД будет проще, если обратные связи сразу получат говорящие названия — `related_name`. …
Django не зря предлагает использовать в запросах `related_name`, с ними код получается куда проще и …
Если `related_name` указан в единственном числе, то запросы с его участием выглядят очень странно. Проблема …
В базе данных `CharField` и `TextField` представлены по-разному. `CharField` — это поле фиксированного размера, в …
По названию переменной сложно догадаться, что речь идёт о настройках базы данных. Обычно используют префикс …
Миграция выглядит сломанной. Такое случается, если не протестировать её после изменений в коде. И это …
При вызове метода `QuerySet.get` помимо исключения `DoesNotExist` возможна еще одна ситуация — вместо одной записи …
В Django ORM есть много полезных методов. Один из них — это `first`. Он позволяет …
Если в запросе не указан способ сортировки, то, значит, он не важен. База данных сделает …
При вызове метода `QuerySet.get(…)` может так случиться, что искомой записи в базе не будет, и …
В шаблонах не зря используют наследование. С его помощью общую логику, что повторяется на всех …
Все картинки на сайте делятся на две группы: статику и медиа. Первые намертво пришиты к …
Если бы автоинспеция искала машины по ФИО водителя, штрафы бы постоянно приходили не тем людям. …
Ничто не встречается в моделях данных так же часто, как ссылка на юзера через `ForeignKey` …
В миграциях Django ни в коем случае нельзя использовать код из models.py и прочих файлов …
В репозитории не хватает файлов статики. Без них сайт в браузере отображается некорректно.
К списку полей каждой модели данных Django автоматически добавляет поле `id`. Оно есть у всех …
Запросы с использованием такого `related_name` выглядят супер-странно.
В Django количество записей внутри `QuerySet` можно посчитать с помощью самой обычной функции `len(…)`. Выглядит …
Код вытягивает из базы данных слишком много данных, столько просто не нужно. Чем больше выборка, …
Пока мы занимаемся отладкой django берёт на себя функции веб-сервера и веб-приложения. Обычно эти роли …
Обычно Django кладёт `None` во все незаполненные поля модели данных. Пустой `IntegerField` — это `None`, …
Функция `format_html` в Django похожа по своим возможностям на обычное форматирование строк. Она тоже подставляет …
URL схема сайта иногда всё-таки меняется. Если сейчас по коду раскиданы фрагменты адресов `'/post/'` и …
Для полей `ForeignKey` Django в админке использует виджет ``. Он предлагает пользователю выбрать из одну …
Пропала текстовка, что располагась между первой картинкой и галереей снизу. ![Скриншот](https://i.imgur.com/eGvUkms.png) Проблема в конфликте между …
![](https://dvmn.org/filer/canonical/1600270419/713/) [Ссылка на скриншот](https://dvmn.org/filer/canonical/1600270419/713/) Там, где загружена картинка, слева показано название загруженного файла, а справа …
Вместо нескольких строчек с загрузкой шаблона и его обработкой: ```python def show_phones(request): template = loader.get_template('product_page.html') …
Проблема отправки JSON по API не новая, и вместо использования `json.dumps()` уже давно используют другой …
Вы используете `{% verbatim %}`, но он захватывает какую-то рандомную область в шаблоне. Получается, что …
Оба метода и `get_or_create`, и `update_or_create` ищут записи в БД с точным совпадением по всем …
В документации Django и других статьях авторы часто советуют поместить код прямо внутрь метода `save` …
В БД не должно быть избыточности данных. **Избыточность** -- это когда одни данные можно получить …
FloatField хранит данные как питоновский `float` и наследует все его проблемы. Например, вычисления с `float` …
С параметром `next` есть известная уязвимость: если не проверять куда вы делаете редирект, то ваш …
В чём тогда смысл настройки, если в ней лежат домены, которые вам не принадлежат? Она …
В моделях данных Django есть стандартная последовательность записи: сначала поля, потом менеджер объектов, `class Meta` …
Номер телефона — это самый простой способ найти клиента на сайте. Но если номер телефона …