Django миграции: создание и настройка админки

Миграции в Django: решение проблем с базой данных

Невыполнение миграций приводит к ошибкам, связанным с отсутствием таблиц в базе данных. Например, при попытке перехода на страницу новостей (/news/) может возникнуть ошибка об отсутствии таблицы news_articles. Это происходит потому, что Django не знает о созданных моделях и соответствующих таблицах до выполнения миграции. Название таблицы news_articles формируется из названия приложения (news), модели (например, Articles) с добавлением знака подчеркивания.

В примере из урока допущена ошибка в написании поля TextField в модели. Правильный вариант: models.TextField(). Неправильное написание может вызывать ошибки при миграциях.

Выполнение миграций

Для выполнения миграции:

  1. Остановите локальный сервер.
  2. Откройте терминал или командную строку.
  3. Используя стандартную структуру проекта, выполните команды:
    python manage.py makemigrations
    python manage.py migrate

    Команда makemigrations создает миграционные файлы, отражающие изменения в моделях. Команда migrate применяет эти изменения к базе данных. Для отдельных приложений (например, news) можно выполнить: python manage.py makemigrations news и затем python manage.py migrate.

После успешного выполнения миграций запустите сервер. Ошибки доступа к страницам, связанным с новыми таблицами, должны исчезнуть. Отсутствие данных на странице новостей означает, что база данных пуста.

Настройка и использование панели администратора

Для доступа к панели администратора создайте суперпользователя:

python manage.py createsuperuser

Система запросит имя пользователя, email и пароль. После создания суперпользователя войдите в панель администратора, используя эти данные.

Панель администратора позволяет управлять пользователями и группами: добавлять, редактировать и удалять пользователей, а также изменять их права доступа.

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

Для отображения моделей (например, Articles из приложения news) в панели администратора, создайте файл admin.py в приложении news со следующим кодом:

from django.contrib import admin
from .models import Articles

admin.site.register(Articles)

После этого модель Articles появится в панели администратора. После перезапуска сервера можно добавлять, редактировать и удалять записи через интерфейс панели. Новые записи будут отображаться на странице новостей.

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