【发布时间】:2016-09-20 07:51:36
【问题描述】:
我想尝试根据用户组在我的导航页面中显示或隐藏 URL。 目前我正在添加到每个视图的顶部并通过一个值发送到模板并对其进行检查,但这似乎不太有效,如果视图不需要身份验证并且未设置该值,那会破坏模板吗?
有没有更好的方法来做到这一点? 像 global.py 一样,我可以在其中检查和设置然后在任何模板中使用它?还是完全不同的东西?
view.py
Authorised_user = ''
if request.user.is_authenticated():
Authorised_user = 'IT'
@login_required
def index(request):
return render(request, 'service/index.html', {
'Authorised': Authorised_user,
})
模板.html
{% if Authorised == 'IT' or Authorised =='Netwworks' %}
<a href="link">Link</a>
{% endif %}
【问题讨论】:
-
这有点不清楚。您如何确定用户是 IT 还是网络?为什么不能在模板中这样做?
-
没有global.py,但是你可以写一个自定义的上下文管理器来完成这个。
-
您在寻找 TEMPLATE_CONTEXT_PROCESSORS 吗?
-
如果可以选择通过 Django 的组处理此问题:请参阅 stackoverflow.com/a/35977488/469111
-
@DanielRoseman 认为我的代码有点混乱,我确实在 django admin 中有用户组,我会在模板中使用这些作为参考