From 27a81a05c2039a50e251f07c5e29c85d01bcbef1 Mon Sep 17 00:00:00 2001 From: Huynh Thi Khanh Linh Date: Tue, 14 Jun 2022 19:00:14 +0700 Subject: [PATCH] :dizzy: link from category in navbar to category list page --- books/models.py | 3 ++ books/urls.py | 1 + books/views.py | 5 ++++ templates/library/books/category.html | 40 +++++++++++++++++++++++++++ templates/library/books/detail.html | 2 +- 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 templates/library/books/category.html diff --git a/books/models.py b/books/models.py index 95f2c4f..2717662 100644 --- a/books/models.py +++ b/books/models.py @@ -10,6 +10,9 @@ class Category(models.Model): class Meta: verbose_name_plural = 'categories' + def get_absolute_url(self): + return reverse('books:category_list', args=[self.slug]) + def __str__(self): return self.name diff --git a/books/urls.py b/books/urls.py index 0f381c5..ae56311 100644 --- a/books/urls.py +++ b/books/urls.py @@ -6,4 +6,5 @@ urlpatterns = [ path('', views.all_books, name='all_books'), path('book//', views.book_detail, name='book_detail'), + path('category//', views.category_list, name='category_list'), ] diff --git a/books/views.py b/books/views.py index e06a8ae..2b4801d 100644 --- a/books/views.py +++ b/books/views.py @@ -15,3 +15,8 @@ def all_books(request): def book_detail(request, slug): book = get_object_or_404(Book, slug=slug) return render(request, 'library/books/detail.html', {'book': book}) + +def category_list(request, slug): + category = get_object_or_404(Category, slug=slug) + books = Book.objects.filter(category=category) + return render(request, 'library/books/category.html', {'category': category, 'books': books}) diff --git a/templates/library/books/category.html b/templates/library/books/category.html new file mode 100644 index 0000000..832e8cb --- /dev/null +++ b/templates/library/books/category.html @@ -0,0 +1,40 @@ +{% extends '../base.html' %} +{% load static %} +{% block title %}Library | {{ category.name }}{% endblock title %} + +{% block content %} +
+

{{ category.name }}

+
+ + +{% endblock %} diff --git a/templates/library/books/detail.html b/templates/library/books/detail.html index 3bb6d27..daed666 100644 --- a/templates/library/books/detail.html +++ b/templates/library/books/detail.html @@ -26,7 +26,7 @@

{{ book.author }}

-
+
{{ book.description }}