Skip to content

Яндекс Практикум. Проект 4-го спринта: Yatube v2. Yatube - это социальная сеть с авторизацией, персональными лентами, комментариями и подписками на авторов статей.

Notifications You must be signed in to change notification settings

egorcoders/hw03_forms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект Yatube v2

Python pytest Django HTML5 CSS

Яндекс Практикум. Спринт 4. Итоговый проект. Расширение проекта Yatube v1: hw02_community:

Описание

Yatube - это социальная сеть с авторизацией, персональными лентами, комментариями и подписками на авторов статей.

Функционал

  1. Создано и подключено приложение core:

    • размещён и зарегистрирован фильтр addclass, позволяющий добавлять CSS - класс к тегу шаблона;
    • создан и зарегистрирован контекст-процессор, добавляющий текущий год на все страницы в переменную {{ year }}.
  2. Создано и подключено приложение about:

    • созданы статические страницы /about/author/ и /about/tech/;
    • ссылки на эти страницы добавлены в навигацию сайта.
  3. Подключено приложение django.contrib.auth, его urls.py подключен к основному urls.py.

  4. Создано и подключено приложение users:

    • переопределены шаблоны для адреса авторизации /auth/login/;
    • переопределены шаблоны для адреса выхода из аккаунта /auth/logout/;
    • создана страница /auth/signup/ с формой для регистрации пользователей.
  5. В приложении posts сделано следующее:

    • создана страница пользователя c постами пользователя profile/<username>/;
    • создана отдельная страница поста posts/<post_id>/;
    • подключен паджинатор, выводящий по десять постов на страницы профиля, группы и главную.
  6. Создана навигация по разделам.

  7. Ссылка «Новая запись» добавлена в шапку сайта. Она видна только авторизованным пользователям и ведёт на страницу /create/.

  8. На странице /create/ создана форма для добавления новой публикации:

    • view-функция для страницы /create/ называется post_create();
    • name для path() страницы /create/ - post_create;
    • в контекст шаблона страницы /create/ передается переменная form. Она содержит объект PostForm, в котором два поля:
    • text (обязательное для заполнения поле);
    • group (необязательное для заполнения);
    • после валидации формы и создания нового поста автор перенаправляется на страницу своего профайла /profile/.
  9. Добавлена страница редактирования записи с адресом /posts/<post_id>/edit/. View-функцию для этой страницы post_edit().

    • Права на редактирование есть только у автора этого поста. Остальные пользователи перенаправляются на страницу просмотра поста.
    • При генерации страницы в контекст передается переменная form, в ней два поля: text и group.
    • Для страницы редактирования поста применяется тот же HTML - шаблон, что и для страницы создания нового поста: posts/create_post.html.
  10. Шаблон усложнен:

    • при редактировании поста заголовок «Добавить запись» заменяется на «Редактировать запись»;
    • надпись на кнопке отправки формы зависит от операции: «Добавить» для новой записи и «Сохранить» — для редактирования.

Установка

  1. Клонировать репозиторий:

    git clone https://github.com/egorcoders/hw03_forms.git
  2. Перейти в папку с проектом:

    cd hw03_forms/
  3. Установить виртуальное окружение для проекта:

    python -m venv venv
  4. Активировать виртуальное окружение для проекта:

    # для OS Lunix и MacOS
    source venv/bin/activate
    
    # для OS Windows
    source venv/Scripts/activate
  5. Установить зависимости:

    python3 -m pip install --upgrade pip
    pip install -r requirements.txt
  6. Выполнить миграции на уровне проекта:

    cd yatube
    python3 manage.py makemigrations
    python3 manage.py migrate
  7. Запустить проект локально:

    python3 manage.py runserver
    
    # адрес запущенного проекта
    http://127.0.0.1:8000
  8. Зарегистирировать суперпользователя Django:

    python3 manage.py createsuperuser
    
    # адрес панели администратора
    http://127.0.0.1:8000/admin

About

Яндекс Практикум. Проект 4-го спринта: Yatube v2. Yatube - это социальная сеть с авторизацией, персональными лентами, комментариями и подписками на авторов статей.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published