Django从字符串变量中获取类

时间:2018-05-02 11:34:48

标签: django django-views

我有一个用类名初始化的变量。但是,当我使用此变量访问基于类的视图时,它显示错误'str'对象没有属性'as_view'。如何从字符串变量中获取类??

classname = "GetAjaxView"
return classname.as_view()(request)

1 个答案:

答案 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')