Яндекс Практикум. Спринт 4. Итоговый проект. Расширение проекта Yatube v1: hw02_community:
Yatube - это социальная сеть с авторизацией, персональными лентами, комментариями и подписками на авторов статей.
-
Создано и подключено приложение
core:- размещён и зарегистрирован фильтр
addclass, позволяющий добавлять CSS - класс к тегу шаблона; - создан и зарегистрирован контекст-процессор, добавляющий текущий год на все страницы в переменную
{{ year }}.
- размещён и зарегистрирован фильтр
-
Создано и подключено приложение
about:- созданы статические страницы
/about/author/и/about/tech/; - ссылки на эти страницы добавлены в навигацию сайта.
- созданы статические страницы
-
Подключено приложение
django.contrib.auth, егоurls.pyподключен к основномуurls.py. -
Создано и подключено приложение
users:- переопределены шаблоны для адреса авторизации
/auth/login/; - переопределены шаблоны для адреса выхода из аккаунта
/auth/logout/; - создана страница
/auth/signup/с формой для регистрации пользователей.
- переопределены шаблоны для адреса авторизации
-
В приложении
postsсделано следующее:- создана страница пользователя c постами пользователя
profile/<username>/; - создана отдельная страница поста
posts/<post_id>/; - подключен паджинатор, выводящий по десять постов на страницы профиля, группы и главную.
- создана страница пользователя c постами пользователя
-
Создана навигация по разделам.
-
Ссылка «Новая запись» добавлена в шапку сайта. Она видна только авторизованным пользователям и ведёт на страницу
/create/. -
На странице
/create/создана форма для добавления новой публикации:- view-функция для страницы
/create/называетсяpost_create(); - name для
path()страницы/create/ - post_create; - в контекст шаблона страницы /create/ передается переменная form. Она содержит объект
PostForm, в котором два поля: text(обязательное для заполнения поле);group(необязательное для заполнения);- после валидации формы и создания нового поста автор перенаправляется на страницу своего профайла
/profile/.
- view-функция для страницы
-
Добавлена страница редактирования записи с адресом
/posts/<post_id>/edit/. View-функцию для этой страницыpost_edit().- Права на редактирование есть только у автора этого поста. Остальные пользователи перенаправляются на страницу просмотра поста.
- При генерации страницы в контекст передается переменная
form, в ней два поля:textиgroup. - Для страницы редактирования поста применяется тот же HTML - шаблон, что и для страницы создания нового поста:
posts/create_post.html.
-
Шаблон усложнен:
- при редактировании поста заголовок «Добавить запись» заменяется на «Редактировать запись»;
- надпись на кнопке отправки формы зависит от операции: «Добавить» для новой записи и «Сохранить» — для редактирования.
-
Клонировать репозиторий:
git clone https://github.com/egorcoders/hw03_forms.git
-
Перейти в папку с проектом:
cd hw03_forms/
-
Установить виртуальное окружение для проекта:
python -m venv venv
-
Активировать виртуальное окружение для проекта:
# для OS Lunix и MacOS source venv/bin/activate # для OS Windows source venv/Scripts/activate
-
Установить зависимости:
python3 -m pip install --upgrade pip pip install -r requirements.txt
-
Выполнить миграции на уровне проекта:
cd yatube python3 manage.py makemigrations python3 manage.py migrate
-
Запустить проект локально:
python3 manage.py runserver # адрес запущенного проекта http://127.0.0.1:8000
-
Зарегистирировать суперпользователя Django:
python3 manage.py createsuperuser # адрес панели администратора http://127.0.0.1:8000/admin