12.3 Практическая работаЦель практической работы
Научиться загружать и отображать медиафайлы.
Что нужно сделать
Воспользуйтесь кодовой базой из пройденных модулей или файлами из репозитория с практической работой
- Убедитесь, что для пользователей выполняется создание профиля при регистрации (модель Profile в приложении myAuth).
- Укажите в настройках MEDIA_ROOT и MEDIA_URL.
- Подключите в настройках urls обслуживание статики для media (только для DEBUG-режима).
- Установите пакет Pillow, заморозьте зависимости.
- Добавьте в профиль пользователя поле avatar типа ImageField, укажите путь для загрузки через кастомную функцию.
- Сгенерируйте и выполните миграцию.
- Отобразите аватарку на странице about-me. Если аватарки в профиле пользователя нет, так и напишите на странице.
- Дайте возможность пользователю менять свою аватарку через страницу about-me.
- Выведите список пользователей на новую страницу. Дайте возможность перейти на страницу любого пользователя, где будет информация о нём, в том числе аватарка.
- Дайте возможность администраторам менять аватарки пользователей (проверка по is_staff или принадлежности профиля пользователю). Эта проверка должна быть:во view-функции (чтобы не пускать пользователя на страницу и не пропускать запрос на обновление);
- в шаблоне (чтобы даже не отображать ссылку на обновление профиля пользователя).
Что оценивается
- Создано приложение myAuth.
- В приложении myAuth есть модель Profile, связанная 1-1 с User.
- В модели Profile есть поле avatar:тип ImageField,
- в upload_to указана функция, путь которой содержит pk пользователя (не профиля),
- можно оставить пустым.
- На странице about-me отображается аватар текущего пользователя (если присутствует).
- На странице about-me можно поменять свой аватар.
- Создана страница со списком всех пользователей. На каждом пользователе можно кликнуть, чтобы перейти на страницу деталей профиля.
- На странице деталей профиля пользователя отображена вся нужная информация о пользователе, в том числе аватар.
- Если у текущего пользователя есть право изменить аватар пользователя, на странице которого он находится (либо имеет статус is_staff, либо является владельцем этого профиля, то есть находится на своей странице), то отображена ссылка на обновление информации профиля. Иначе ссылки быть не должно.
- При переходе на страницу для обновления информации профиля пользователя выполняется проверка, что пользователь может обновлять информацию этого профиля (либо имеет статус is_staff, либо является владельцем этого профиля, то есть находится на своей странице).
- На странице обновления информации профиля пользователя отображается текущая информация профиля, в том числе аватар.
- Аватар и другую информацию из профиля пользователя можно обновить.
- Обновить аватар может только тот, у кого достаточно прав на это (см. выше).