我有一个用类名初始化的变量。但是,当我使用此变量访问基于类的视图时,它显示错误'str'对象没有属性'as_view'。如何从字符串变量中获取类??
classname = "GetAjaxView"
return classname.as_view()(request)
答案 0 :(得分:1)
怎么样
eval(classname).as_view()(request)
?
我假设你不知道你想提前使用哪个班级,否则你可以写GetAjaxView.as_view()(request)
。
如果从用户输入生成字符串,不使用eval ;相反,设计一个只响应你期望的输入的解决方案,可能是这样的:
if classname == "GetAjaxView":
return GetAjaxView.as_view()(request)
elif classname in ["GetHectorView", "GetUlyssesView"]:
return eval(classname).as_view()(request)
else:
return defaults.server_error(request, template_name='500.html')