Very good explanation Andrew, I'm looking forward to having time to look at
your talk - seems right on the money.

Regards,

Andréas

2017-04-03 23:24 GMT+02:00 Andrew Pinkham <[email protected]>:

> There's a little bit of vocabulary overload going on that I can't help but
> point out, as it confused me when I encountered it.
>
> There is a difference between Class-Based Views (CBV) and Generic
> Class-Based Views (GCBV). They were both introduced at the same time, and
> so it is easy to get them confused, but they serve very different purposes.
>
> When referring to CBV, there is actually only a single CBV, called View.
> Every other class-based view provided by Django is a generic view! The goal
> of these views is to provide pre-defined, slightly-customizable behavior.
> The fact that they are objects (class-based) is secondary. They are called
> GCBV for historical reasons: to make a difference between the generic view
> _functions_ that preceded them.
>
> As James points out, a view is simply a Python callable that receives a
> request and returns a response. To that extent, the View class and function
> views are _almost_ equivalent. View provides two extra things over a
> function view: (1) automatic handling of the OPTIONS HTTP method and (2)
> denial of HTTP methods not explicitly defined. The methods defined on
> subclasses of View map directly to HTTP verbs. As developers define class
> methods named after HTTP methods, View will automatically change the
> response returned by an OPTIONS request and allow those methods to return
> data.
>
> Of course, a function view can be implemented to handle OPTIONS and deny
> HTTP methods not explicitly implemented. Django even provides a decorator
> for the latter, linked below.
>     https://docs.djangoproject.com/en/stable/topics/http/
> decorators/#django.views.decorators.http.require_http_methods
>
> My personal opinion is that language is power, and I find the terms
> Class-Based Views and Generic Class-Based Views misleading. I'd prefer to
> simply call the latter Generic Views, as their object nature is not their
> utility. In an attempt to distance the documentation from the CBV vs GCBV,
> I'd consider calling View instances and subclass-instances "Object Views".
> That said, when I suggested this at DjangoCon US 2015, my suggestions
> seemed polarizing, so make of this what you will.
>
> I feel pretty strongly about this topic, and gave a talk about it at the
> same conference: https://www.youtube.com/watch?v=BJiOERA49ZQ
>
> I hope this is helpful!
> Andrew
> http://jambonsw.com
> http://django-unleashed.com
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/BD0905CB-9D16-4F9A-8CBD-7115B3E46303%40andrewsforge.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAK4qSCd4KBCqoX9Qj3Tgz4zzfH3%2BtRnVu-2L%2B1h0S%2BppTNnf0Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to