Montréal-Django

Introduction to Class-Based Views

https://slides.com/ctrlweb/django-5/live/
http://invite.yuldev.ca/

Welcome

Daniel LeBlanc

CEO at ctrlweb

@danidou

dleblanc78

YulDev Organizer

Montréal-Django Organizer

daniel@ctrlweb.ca

CTO at Gaspard Media

Noël Rignon

TA at Maison Logiciel Libre

CTO at Joii

RignonNoel

noël-rignon-5b9172b9

rignon.noel@openmailbox.org

Written by

Presented by

Montréal-Django Presenter

Job Offers

Job Seekers

Announcements

Why use CBVs?

  • Implementing common web development tasks

  • Extensible

  • Decorating class-based views

  • Simple usage in your URLconf

  • Standardize the code

 

Advantage:

  • Many attributes

  • Many methods

  • Many heritage

 

Disadvantage:

Learning curve

As all class a CBV have:

A list of attributes: (including)

  • model
  • template_name
  • context_object_name

 

A list of methods / behaviors: (including)

  • dispatch()
  • get()
  • post()

Class presented

Edit :

  • CreateView
  • UpdateView
  • DeleteView

List :

  • ListView

Base :

  • RedirectView
  • TemplateView

Detail :

  • DetailView

Resource:

CreateView

View for creating a new object instance.

The HTTP GET method return a form.

The HTTP POST method create the object.
from django.views.generic import CreateView

UpdateView

View for updating an object.

The HTTP GET method return a form.

The HTTP POST method update the object.
from django.views.generic import UpdateView

DeleteView

View for deleting an object retrieved with `self.get_object()`.

The HTTP GET method return a template of validation.

The HTTP POST method delete the object.
from django.views.generic import DeleteView

ListView

Render some list of objects, set by :

 - `self.model`
or
 - `self.queryset`

Need to be any iterable of items, not just a queryset.
from django.views.generic import ListView

DetailView

Render a "detail" view of an object.

By default this is a model instance looked up from `self.queryset`, but the
view will support display of any object by overriding `self.get_object()`.
from django.views.generic import DetailView

RedirectView

A view that provides a redirect on any GET request.
from django.views.generic import RedirectView

TemplateView

A view that renders a template.  

This view will also pass into the context
any keyword arguments passed by the URLconf.
from django.views.generic import TemplateView

Merci!

Thank you!

Made with Slides.com