我可以在django TemplateView中设置不同的&template_name吗?

时间:2015-08-27 20:53:05

标签: django django-templates django-views django-rest-framework

使用Django视图我想根据用户的权限级别重定向用户。

我有一个有效的模板视图。

class theTableView(generic.TemplateView):
    template_name = 'adminTable.html'

我想做的事情看起来像这样:

class TheTableView(generic.TemplateView):
    if self.request.user.is_superuser==True:
        tempTemplate = 'goodAdminTable.html'
    elseif self.request.user.is_authenticated==True:
        tempTemplate = 'goodUserTable.html'
    template_name = tempTemplate

我能够在数据的rest_framework api返回中执行此操作。

我需要能够检查用户权限,并根据结果将它们重定向到相应的template_name。

感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:6)

您可以通过覆盖此方法的get_template_names()方法来实现此目的

ItemSource

答案 1 :(得分:0)

您可以在TemplateView中覆盖此方法,只需在其中添加逻辑。

 def get_template_names (self):
      return ["your_template.html",]