Book Image

Django 4 for the Impatient

By : Greg Lim, Daniel Correa
Book Image

Django 4 for the Impatient

By: Greg Lim, Daniel Correa

Overview of this book

Learning Django can be a tricky and time-consuming activity. There are hundreds of tutorials, loads of documentation, and many explanations that are hard to digest. However, this book enables you to use and learn Django in just a couple of days. In this book, you’ll go on a fun, hands-on, and pragmatic journey to learn Django full stack development. You'll start building your first Django app within minutes. You'll be provided with short explanations and a practical approach that cover some of the most important Django features, such as Django Apps’ structure, URLs, views, templates, models, CSS inclusion, image storage, authentication and authorization, Django admin panel, and many more. You'll also use Django to develop a movies review app and deploy it to the internet. By the end of this book, you'll be able to build and deploy your own Django web applications.
Table of Contents (14 chapters)

Listing reviews

Now, we want to list a movie's reviews on the movie details page (Figure 11.3):

Figure 11.3 – The movie page with reviews

Let's look at the steps to do so:

  1. In /movie/views.py, in def detail, add the following code in bold:
    …
    def detail(request, movie_id):
        movie = get_object_or_404(Movie,pk=movie_id)
        reviews = Review.objects.filter(movie = movie)
        return render(request, 'detail.html', 
                      {'movie':movie, 'reviews': reviews})
    …

Let's see what's happening in the code. Using the filter function, we retrieve reviews for a particular movie only:

    reviews = Review.objects.filter(movie = movie)

We then pass in the reviews to detail.html:

    ...