diff --git a/bookify/books/templates/books/book_detail.html b/bookify/books/templates/books/book_detail.html
index 225886e..636fecc 100644
--- a/bookify/books/templates/books/book_detail.html
+++ b/bookify/books/templates/books/book_detail.html
@@ -27,7 +27,14 @@
Отзывы
{% for review in reviews %}
-
{{ review.user.username }} ({{ review.rating }}/5)
+
+ {{ review.user.username }}
+ ({{ review.rating }}/5)
+ {% if review.user == user %}
+
+ Редактировать отзыв
+ {% endif %}
+
{{ review.text }}
@@ -36,6 +43,7 @@
{% endfor %}
+
{% if user.is_authenticated %}
{% if user_has_review %}
Вы уже оставили отзыв.
diff --git a/bookify/books/templates/books/edit_review.html b/bookify/books/templates/books/edit_review.html
new file mode 100644
index 0000000..be70b66
--- /dev/null
+++ b/bookify/books/templates/books/edit_review.html
@@ -0,0 +1,9 @@
+{% extends 'books/base.html' %}
+{% block content %}
+Редактировать отзыв для "{{ review.book.title }}"
+
+{% endblock %}
diff --git a/bookify/books/urls.py b/bookify/books/urls.py
index 651c54a..300e47b 100644
--- a/bookify/books/urls.py
+++ b/bookify/books/urls.py
@@ -24,4 +24,5 @@ urlpatterns = [
path("register/", views.register, name="register"),
path("succesful-logout/", views.logout, name="logout"),
path("book//edit/", views.edit_book, name="edit_book"),
+ path("review//edit/", views.edit_review, name="edit_review"),
]
diff --git a/bookify/books/views.py b/bookify/books/views.py
index a944e38..93f0ed0 100644
--- a/bookify/books/views.py
+++ b/bookify/books/views.py
@@ -121,6 +121,25 @@ def add_review(request, pk):
return redirect("books:book_detail", pk=pk)
+@login_required
+def edit_review(request, pk):
+ """Редактирование отзыва, только если пользователь – автор."""
+ review = get_object_or_404(Review, pk=pk)
+ # Проверяем владельца
+ if review.user != request.user:
+ raise PermissionDenied("Нельзя редактировать чужой отзыв.")
+
+ if request.method == "POST":
+ form = ReviewForm(request.POST, instance=review)
+ if form.is_valid():
+ form.save()
+ return redirect("books:book_detail", pk=review.book.pk)
+ else:
+ form = ReviewForm(instance=review)
+
+ return render(request, "books/edit_review.html", {"form": form, "review": review})
+
+
def genre_recommendations(request, genre_name):
"""Рекомендации книг по заданному жанру."""
genre = get_object_or_404(Genre, name=genre_name)