-
Book Overview & Buying
-
Table Of Contents
Mastering Django: Core
By :
Another common need is to filter down the objects given in a list page by some key in the URL. Earlier we hard-coded the publisher's name in the URLconf, but what if we wanted to write a view that displayed all the books by some arbitrary publisher?
Handily, the ListView has a get_queryset() method we can override. Previously, it has just been returning the value of the queryset attribute, but now we can add more logic. The key part to making this work is that when class-based views are called, various useful things are stored on self; as well as the request (self.request), this includes the positional (self.args) and name-based (self.kwargs) arguments captured according to the URLconf.
Here, we have a URLconf with a single captured group:
# urls.py
from django.conf.urls import url
from books.views import PublisherBookList
urlpatterns = [
url(r'^books/([\w-]+)/$', PublisherBookList.as_view()),
]
Next, we'll write the PublisherBookList...
Change the font size
Change margin width
Change background colour