Социальная сеть для публикации личных дневников. Сайт, на котором можно создать свою страницу. Если на нее зайти, то можно посмотреть все записи автора. Пользователи могут заходить на чужие страницы, подписываться на авторов и комментировать их записи. Автор может выбрать имя и уникальный адрес для своей страницы. Есть возможность модерировать записи и блокировать пользователей, если начнут присылать спам. Записи можно отправить в сообщество и посмотреть там записи разных авторов.
-
Создано и зарегистрировано приложение Posts.
-
Подключена база данных.
-
Десять последних записей выводятся на главную страницу.
-
В админ-зоне доступно управление объектами модели Post: можно публиковать новые записи или редактировать/удалять существующие.
-
Пользователь может перейти на страницу любого сообщества, где отображаются десять последних публикаций из этой группы.
- Зарегистрирована модель
Group. - Для модели
Postсоздана кастомная админка:- В списке объектов в админке отображаются поля
pk,text,pub_date,author,group. - Содержимое поля
groupможно редактировать в админке прямо в списке объектов Post. - Доступен поиск по полю
text. - Доступна фильтрация по полю
pub_date. - Если какое-то поле не заполнено, в нём отображается текст
-пусто-.
- В списке объектов в админке отображаются поля
index(): передаёт в шаблон posts/index.html десять последних объектов моделиPost.group_posts(): передаёт в шаблон posts/group_list.html десять последних объектов моделиPost, отфильтрованных по полюgroup, и содержимое для тега<title>.
- Для приложения Posts установлен
namespace='posts'. - Для главной страницы установлен
name='index'. - Страница с постами из определённой группы доступна по URL вида group//.
- Для страницы с постами группы установлен
name='group_list'.
- Файлы шаблонов хранятся на уровне проекта.
- Шаблоны разбиты на логические блоки и собираются с помощью тегов
includeиextend. - К шаблонам подключена статика.
- В шаблоне
index.htmlссылка<a href="">все записи группы</a>адресует пользователя на страницу той группы, которой принадлежит пост. - Из view-функций в словаре
contextпередаётся основное содержимое страницы. - Содержимое тега
<title>— для разных страниц разное:- для страницы группы:
Записи сообщества <имя_группы>; - для главной страницы:
Последние обновления на сайте.
- для страницы группы:
Клонировать репозиторий:
git clone https://github.com/iurij-n/YaTube_final.git
Cоздать и активировать виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
Выполнить миграции:
python manage.py migrate
Запустить проект:
python manage.py runserver
Проект доступен по адресу http://127.0.0.1:8000/