From 7c5af973f2ba39491af65af8f87954ba9087ad9a Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 17 Dec 2017 10:36:44 +0100 Subject: [PATCH] add a view to list all articles in a category --- .../webshop/templates/webshop/category.html | 21 +++++++++++++++++++ django/didgeridoo/webshop/urls.py | 3 +++ django/didgeridoo/webshop/views.py | 15 +++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 django/didgeridoo/webshop/templates/webshop/category.html diff --git a/django/didgeridoo/webshop/templates/webshop/category.html b/django/didgeridoo/webshop/templates/webshop/category.html new file mode 100644 index 0000000..7e42cfa --- /dev/null +++ b/django/didgeridoo/webshop/templates/webshop/category.html @@ -0,0 +1,21 @@ + + + + + + + +
+

{{ category.name }}

+{% if article_list %} + +{% else %} +

There are no articles in this category.

+{% endif %} +
+ + diff --git a/django/didgeridoo/webshop/urls.py b/django/didgeridoo/webshop/urls.py index a3780aa..1e36cbc 100644 --- a/django/didgeridoo/webshop/urls.py +++ b/django/didgeridoo/webshop/urls.py @@ -4,4 +4,7 @@ from . import views urlpatterns = [ url(r'^$', views.index, name='index'), + url(r'^category/(?P[0-9]+)/$', + views.articles_in_category, + name='category'), ] diff --git a/django/didgeridoo/webshop/views.py b/django/didgeridoo/webshop/views.py index 24a8d37..e39b894 100644 --- a/django/didgeridoo/webshop/views.py +++ b/django/didgeridoo/webshop/views.py @@ -21,3 +21,18 @@ def index(request): 'parent_category_list': parent_category_list, } return HttpResponse(template.render(context, request)) + + +def articles_in_category(request, category_id): + selected_category = Category.objects.get(id=category_id) + hidden = ArticleStatus.objects.get(name="hidden") + + article_list = Article.objects.filter( + category=selected_category.id).exclude(status=hidden.id) + + template = loader.get_template('webshop/category.html') + context = { + 'article_list': article_list, + 'category': selected_category, + } + return HttpResponse(template.render(context, request))