Мои отзывы

This commit is contained in:
2025-01-16 19:06:30 +03:00
parent c415d26001
commit 7c7c638c19
4 changed files with 39 additions and 0 deletions

View File

@@ -18,6 +18,7 @@
{% if user.is_authenticated %} {% if user.is_authenticated %}
<a href="{% url 'books:add_book' %}">Добавить книгу</a> <a href="{% url 'books:add_book' %}">Добавить книгу</a>
<a href="{% url 'books:my_books' %}">Мои книги</a> <a href="{% url 'books:my_books' %}">Мои книги</a>
<a href="{% url 'books:my_reviews' %}">Мои отзывы</a>
| |
<strong>{{ user.username }}</strong> <strong>{{ user.username }}</strong>
<a href="{% url 'logout' %}">Выйти</a> <a href="{% url 'logout' %}">Выйти</a>

View File

@@ -0,0 +1,30 @@
{% extends 'books/base.html' %}
{% block content %}
<h2>Мои отзывы</h2>
{% if reviews %}
<ul>
{% for review in reviews %}
<li>
<p>
<strong>Книга:</strong>
<a href="{% url 'books:book_detail' review.book.pk %}">
{{ review.book.title }}
</a>
</p>
<p>
<strong>Рейтинг:</strong> {{ review.rating }}/5
</p>
<p>
<strong>Отзыв:</strong> {{ review.text }}
</p>
<!-- Ссылка Edit (уже есть view edit_review) -->
<p>
<a href="{% url 'books:edit_review' review.pk %}">Редактировать отзыв</a>
</p>
</li>
{% endfor %}
</ul>
{% else %}
<p>Вы пока не оставляли отзывов.</p>
{% endif %}
{% endblock %}

View File

@@ -27,4 +27,5 @@ urlpatterns = [
path("review/<int:pk>/edit/", views.edit_review, name="edit_review"), path("review/<int:pk>/edit/", views.edit_review, name="edit_review"),
path("rating/", views.books_rating, name="books_rating"), path("rating/", views.books_rating, name="books_rating"),
path("my-books/", views.my_books, name="my_books"), path("my-books/", views.my_books, name="my_books"),
path("my-reviews/", views.my_reviews, name="my_reviews"),
] ]

View File

@@ -33,6 +33,13 @@ def my_books(request):
return render(request, "books/my_books.html", {"books": books}) return render(request, "books/my_books.html", {"books": books})
@login_required
def my_reviews(request):
"""Все отзывы, оставленные текущим пользователем."""
reviews = Review.objects.filter(user=request.user)
return render(request, "books/my_reviews.html", {"reviews": reviews})
def books_rating(request): def books_rating(request):
""" """
Страница со всеми книгами, отсортированными по убыванию среднего рейтинга. Страница со всеми книгами, отсортированными по убыванию среднего рейтинга.