Яндекс Практикум. Спринт 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 git@github.com:Ramiras123/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