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)

Implementing authorization

We have implemented authentication where we allow users to sign up and log in. But we also need authorization that authorizes access to certain pages only to logged-in users.

Currently, if a user manually enters the URL to create a review – for example, http://localhost:8000/movie/2/create – they can still access the form. We should authorize access to creating/updating/deleting reviews only to logged-in users. We will also authorize access to logout.

Let's look at the steps to do so:

  1. We import and add the @login_required decorator to the views that we want to authorize, as shown in bold:

/movie/views.py

…
from .forms import ReviewForm
from django.contrib.auth.decorators import 
  login_required@login_required
def createreview(request, movie_id):
    …
@login_required
def updatereview(request, review_id):
    …
@login_required
def deletereview...