What's the recommended way of getting a generic view class from the url name?
url(r'^$', HomeView.as_view(), name='home')
So with 'home' I want to get the class HomeView.
Django 1.9 introduced 2 attributes to the functions that as_view() returns. view_initkwargs
and view_class
.
Combining this with Pickles' answer:
from django.urls import reverse, resolve
url = reverse('home')
view = resolve(url).func.view_class
The get_class I got from the following question: Does python have an equivalent to Java Class.forName()?
url = reverse('home')
resolver_match = resolve(url)
func = resolver_match.func
module = func.__module__
view_name = func.__name__
clss = get_class( '{0}.{1}'.format( module, view_name ) )
This is what I came up with myself I am very open to other answers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With