#26660 closed Uncategorized (wontfix)
Remove ugly .as_view() requeriment
| Reported by: | john-bonachon | Owned by: | nobody | 
|---|---|---|---|
| Component: | Core (URLs) | Version: | 1.9 | 
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description
Let's take this urls.py as an example,
from django.conf.urls import url
from . import views
app_name = 'polls'
urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name='index'),
    url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
    url(r'^(?P<pk>[0-9]+)/results/$', views.ResultsView.as_view(), name='results'),
    url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]
Is there any elegant "trick" to avoid calling the method .as_view() and make the Class View callable? I'm not sure if using __call__ magic function on django.views.generic.View would help on this.
It may have sense to make the developer remember that you must send a callable that will receive an HttpRequest plus the regex arguments, however url() is also accepting a list or tuple for include() processing, so I wonder if we could also just send the Class View.
  Note:
 See   TracTickets
 for help on using tickets.
    
The
.as_view()requirement exists for a reason; if you'd like to see a summary of the design process, you can see the options considered here: https://code.djangoproject.com/wiki/ClassBasedViews