从url名称中获取泛型视图类的推荐方法是什么?
url(r'^$', HomeView.as_view(), name='home')
因此,使用'home‘时,我希望获得类HomeView。
发布于 2011-04-21 19:53:13
我从以下问题得到的get_class: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 ) )
这是我自己想出来的,我对其他答案持开放态度。
发布于 2017-06-22 20:50:11
Django 1.9为as_view()返回的函数引入了两个属性。view_initkwargs
和view_class
。
把这个和Pickles的答案结合起来:
from django.urls import reverse, resolve
url = reverse('home')
view = resolve(url).func.view_class
发布于 2014-01-23 16:10:35
灵感来自Pickels的回答:
import importlib
from django.core.urlresolvers import reverse, resolve
view_name = 'my_view_name'
view_func = resolve(reverse(view_name)).func
module = importlib.import_module(view_func.__module__)
view = getattr(module, view_func.__name__)
https://stackoverflow.com/questions/5749075
复制