Архив категории ‘Django 3.0’

Языковые настройки проекта в Django

LANGUAGE_GODE – код языка, который будет использоваться для вывода системных сообщений и контента административного сайта. По умолчанию используется значение "en-us" (американский английский). Если необходимо использовать русский язык, нужно указать "ru". USE_I18N – если указано True (по умолчанию), будет включен встроенный в Django модуль автоматического перевода текста на язык, указанный в параметре LANGUAGE_CODE (системные сообщения и […]

Список зарегистрированных приложений и посредников

Все приложения, зарегистрированные в текущем проекте, перечислены в параметре INSTALL_APPS. Если в приложении используются только контроллеры, допускается не добавлять его в данный перечень, однако так делать не рекомендуется. Сразу после создания проекта список состоит их следующих приложений: Назначение данных приложений: - django.contrib.admin – обеспечивает работу административного веб-сайта Django; - django.contrib.auth – интегрированная подсистема разграничения доступом; […]

Создание нового проекта, настройка подключения к БД

Для создания нового проекта в Django используется команда startproject утилиты django-admin: django-admin startproject <название проекта> [<путь к каталогу проекта>] Путь можно не указывать – в этом случае папка будет создана в текущем каталоге с именем, совпадающим с названием проекта. В дальнейшем данную папку можно переименовать или перемещать в другое место, на работоспособность проекта это не […]

Подготовка к работе перед созданием проекта

Перед стартом нового проекта на Django следует выполнить начальную подготовку. Необходимо проверить версии используемого ПО – среды Python и серверных СУБД (если используется). - Python должен быть не ниже версии 3.6 (версия 2 не поддерживается). Дистрибутив можно загрузить по ссылке https://www.python.org/downloads; - MySQL версии не ниже 5.6; - MariaDB версии не ниже 10.1 - PostgreSQL […]

Наследование шаблонов и статические файлы

Наследование шаблонов Если внимательно посмотреть предыдущие примеры шаблонов, видны большие блоки одинакового кода: панель навигации, заголовок, блоки со служебными тегами и т.д. Это увеличивает общий объем используемых шаблонов, а также усложняет внесение изменений – например, для добавления нового пункта в меню, понадобится редактирование всех файлов с данным блоком. Для решения данной проблемы используется наследование шаблонов […]

Формы, связанные с моделями, контроллеры-классы

Для ввода различных данных в Django используются формы – специальный инструмент, обеспечивающий вывод полноценной веб-формы, а также обеспечивающий проверку внесенной информации на корректность. Если форма связана с моделью, она может самостоятельно сохранить информацию в базе данных. В качестве примера создадим форму, предназначенную для ввода объявлений и связанную с созданной ранее моделью Bb. Назовем новый класс […]

Обратное разрешение интернет-адресов в Django

В проекте используется следующий HTML-код для формирования гиперссылок на рубрики: Ссылка на целевую страницу, подставляемая в атрибут href, формируется из префикса bboard с добавлением ключа рубрики. Это работает, но в дальнейшем может доставить неудобство. К примеру, если возникнет необходимость изменить префикс, придется изменять код во всех используемых шаблонах. Избежать такой ситуации поможет обратное разрешение интернет-адресов. […]

URL-параметры и параметризированные запросы

Для удобства принято при выводе на экран разбивать объявления по рубрикам. Добавим на страницу панель навигации со списком рубрик. При выборе определенной рубрики на страницу будут выводится только объявления, которые к ней относятся. Чтобы контроллер, отвечающий за вывод объявлений, мог смог их отфильтровать, ему необходимо передать ключ рубрики. Сделать это можно через GET-параметр, например, по […]

Связи между моделями, строковое представление

Классическая доска объявлений подразумевает, что все объявления разделены на тематические рубрики (электроника, услуги, аренда и т.д). Также добавим данный функционал в наш проект. Сначала объявим новый класс модели Rubric, которая обеспечит функционирование рубрик. Для этого необходимо дописать код в models.py (приложение bboard): Создаваемая модель содержит только одно поле name, предназначенное для хранения названия рубрики. Сразу […]

Параметры полей и моделей в Django. Редактор модели

Теперь необходимо доработать проект. Во-первых, созданная ранее модель имеет название в виде непонятной аббревиатуры Bbs, вместо логичного названия Объявления. Во-вторых, страницы редактирования и добавления новой записи в качестве надписей элементов формы имеют имена полей модели (price, title и content), что неудобно. В-третьих, нет возможности отсортировать объявления по дате публикации. Одним словом, необходимо настроить основные параметры […]