I have been tracking the development of class-based views for a few
weeks now, and am just starting to adapt some of my work-in-progress
sites. This post is in a bit of a grey area between django-users and
django-developers, but I'm curious what is suggested for sites that
make heavy use of django.core.urlresolvers.reverse() and {% url %} in
templates.

Obviously with the old function-based views, we could simply do this:

from django.core.urlresolvers import reverse

def my_view(request):
   ... do something useful ...
   return response

my_view_url = reverse('my_app.views.my_view')

And likewise we could also reference that view using the {% url %} tag
in templates.

What is the recommendation for using reverse() and {% url %} when we
migrate to class-based views? So fat the only solution I have come up
with is naming the the URL patterns in urls.py, for example:

urlpatterns = patterns('',
    (r'^$', TemplateView.as_view(template_name='main/index.html'), {},
'home'),
)

In the above case, we can now reverse('home') or {% url "home" %} -
but is this the only way? If so, one would have to give some careful
thought to the names of the URL patterns, so that it was readily
obvious what view each named URL actually was. For example, one might
end up using names like "myapp.IndexView" - a pseudo-hierarchical
naming scheme, to essentially bring us back to the place we were with
function-based view names.

I look forward to people's ideas about this...

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-develop...@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to