Мини-блог на Django 4: настройка админ-панели и миграции

Миграции в Django

На предыдущем уроке был установлен Django, создан проект и приложение для мини-блога. Теперь настроим админ-панель. Для этого выполним миграции базы данных.

Миграции — это Python-файлы, позволяющие изменять структуру таблиц базы данных.

Чтобы применить миграции, в терминале, перейдя в директорию проекта командой cd MyBlock, выполните python manage.py makemigrations. Эта команда создаёт, но не применяет миграции. Это позволяет проверить код. После выполнения создаётся файл *.py (например, 0001_initial.py). Django по умолчанию использует SQLite3, но можно изменить настройки для других баз данных.

Для применения миграций выполните python manage.py migrate. Django отслеживает и применяет миграции к базе данных.

Создание суперпользователя

Для доступа к админ-панели создайте суперпользователя — пользователя с полными правами. В терминале выполните команду python manage.py createsuperuser. Система запросит имя пользователя, email (рекомендуется для восстановления пароля) и пароль. При создании пароля проверяется его сложность.

Запуск сервера и вход в админ-панель

Запустите проект командой python manage.py runserver. Админ-панель доступна по адресу http://127.0.0.1:8000/admin/. Введите имя пользователя и пароль суперпользователя.

Создание модели для записей блога

Данные, хранящиеся в базе данных и управляемые через админ-панель, представлены моделями. Каждая модель соответствует таблице в базе данных и создаётся на основе Python-класса.

В файле models.py приложения blog создадим модель Post:

  • Заголовок: CharField (строка, max_length=100).
  • Текст: TextField (большое текстовое поле).
  • Автор: CharField (строка, max_length=100).
  • Дата публикации: DateField (дата).

Внутри класса Post создадим мета-класс с атрибутами verbose_name (имя модели в единственном числе) и verbose_name_plural (во множественном числе). Также добавим метод __str__ для отображения записей в админ-панели.

Регистрация модели в админ-панели

Для отображения модели в админ-панели зарегистрируем её в admin.py. Импортируем Post из models.py и регистрируем с помощью декоратора @admin.register. Создадим класс PostAdmin, наследующий от admin.ModelAdmin, и определим атрибут list_display для указания полей, отображаемых в таблице админ-панели.

Миграции после создания модели

После создания модели выполните миграции: python manage.py makemigrations и python manage.py migrate.

Проверка работы админ-панели

Запустите сервер и проверьте админ-панель. Должна появиться таблица для управления записями блога. Поля модели должны отображаться корректно, с русскими подписями.

Вывод данных на сайт (будущее развитие)

В следующем уроке будет создана главная страница сайта и реализован вывод данных из базы данных.

Что будем искать? Например,программа