我可以在 django TemplateView 中设置不同的 'template_name' 吗?
Can I set different 'template_name's inside of django TemplateView?
使用 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 return 中为数据做到这一点。
我需要能够检查用户权限并根据结果将他们重定向到适当的 template_name。
感谢任何帮助。谢谢
您可以像这样重写 get_template_names() 方法来做到这一点
class theTableView(generic.TemplateView):
template_name = 'adminTable.html'
def get_template_names(self):
if self.request.user.is_superuser:
template_name = 'goodAdminTable.html'
elif self.request.user.is_authenticated:
template_name = 'goodUserTable'
else:
template_name = self.template_name
return [template_name]
您可以在您的 TemplateView 中重写此方法,并在其中添加您的逻辑。
def get_template_names (self):
return ["your_template.html",]
使用 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 return 中为数据做到这一点。
我需要能够检查用户权限并根据结果将他们重定向到适当的 template_name。
感谢任何帮助。谢谢
您可以像这样重写 get_template_names() 方法来做到这一点
class theTableView(generic.TemplateView):
template_name = 'adminTable.html'
def get_template_names(self):
if self.request.user.is_superuser:
template_name = 'goodAdminTable.html'
elif self.request.user.is_authenticated:
template_name = 'goodUserTable'
else:
template_name = self.template_name
return [template_name]
您可以在您的 TemplateView 中重写此方法,并在其中添加您的逻辑。
def get_template_names (self):
return ["your_template.html",]