Django从字符串变量获取类

Django从字符串变量获取类,django,django-views,Django,Django Views,我有一个用类名初始化的变量。但是,当我使用这个变量访问基于类的视图时,它显示错误“str”对象没有属性“as_view”。如何从字符串变量获取类 classname = "GetAjaxView" return classname.as_view()(request) 怎么样 eval(classname).as_view()(请求) 我假设您事先不知道要使用什么类,否则您可以编写GetAjaxView.as\u view()(请求) 如果您是从用户输入生成字符串,不要使用eval;相反,设计

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

classname = "GetAjaxView"
return classname.as_view()(request)
怎么样

eval(classname).as_view()(请求)

我假设您事先不知道要使用什么类,否则您可以编写
GetAjaxView.as\u view()(请求)

如果您是从用户输入生成字符串,不要使用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')

对这是正确的。类名是动态的。是的,这个有效。我只需要eval()。我认为,根据你的建议,使用dict更好。是的,使用dict,比如:
{'GetAjaxView':GetAjaxView'GetHectorView':GetHectorView}[classname]
似乎是一个安全而简洁的解决方案。我现在正在改变这一切。谢谢。你能支持我的问题吗?我是Django的新手,我有太多的疑问,因此我提出了太多的问题,现在我不能再问问题了。@Jintoantany听起来你可能希望重新考虑你的提问方式,除非你刚刚在投票中遭遇不幸。如果你认为我的回答有用,请投票并/或接受。