Skip to content

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

Notifications You must be signed in to change notification settings

Ramiras123/hw03_forms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 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 git@github.com:Ramiras123/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