Урок 17. Практикум 2 (Django): Meta, Admin, Разрешения

📁 Блок: Django ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#django #models #admin #meta #permissions #практикум #fixtures

⚡ Кратко: Практикум 2 — Django Meta, Admin Panel, Разрешения

18 задач на закрепление работы с моделями Django, классом Meta, настройкой Admin-панели, admin-действиями, группами разрешений и fixtures.

  • Модели (задачи 1–3): Project → Task + choices + validators → Tag + M2M + due_date
  • Admin (задачи 4, 6, 10): list_display, search_fields, list_filter, assignee
  • Meta (задачи 7, 8, 11): ordering, verbose_name, unique_together
  • Admin-действия (задачи 13–15): replace_spaces, change_status, change_priority
  • Разрешения (задача 16): группы Manager / Client / Developer
  • Fixtures (задача 18): dumpdata / loaddata для групп и пользователей

Топ-3 ошибки: 1) Забыть on_delete в ForeignKey. 2) Поле choices — значение должно совпадать с ключом. 3) ManyToManyField нельзя в list_display напрямую.

📖 О чём этот урок

Урок 17 — это практикум. Новый материал не вводится — цель урока закрепить на практике: определение моделей Django, настройку класса Meta, конфигурацию Admin-панели, создание admin-действий, управление группами разрешений и работу с fixtures.

Если что-то кажется незнакомым — загляни в Урок 16 (Модели Django) или Урок 15 (Практикум 1).

Что закрепляем

  • Определение моделей: CharField, TextField, DateTimeField, FileField, ForeignKey, ManyToManyField
  • Validators: MinLengthValidator, choices (статусы, приоритеты)
  • Класс Meta: ordering, verbose_name, unique_together
  • Admin-панель: list_display, search_fields, list_filter, property + short_description
  • Admin-действия: custom actions, short_description, регистрация через actions
  • Группы разрешений: Manager, Client, Developer в Django Admin
  • Fixtures: dumpdata, loaddata для переноса данных

📚 Что повторить перед изучением

🎯 Что изучать дальше

  • → Урок 18: Summary session 4
  • Django ORM: QuerySet API, фильтрация, аннотации
  • Custom User model, расширение базовой модели пользователя