【发布时间】:2018-11-09 21:21:00
【问题描述】:
我想限制某些组中的用户访问 HTML 模板的某些部分。我有一个基于类的视图,如下所示:
Views.py
class PostListView(ListView):
model = BlogPost
paginate_by = 10
template_name = 'main/mysite.html'
使用基于函数的视图,我可以使用来自In Django, how do I check if a user is in a certain group? 的request.user.groups.filter(name='GROUP_NAME').exists() 限制对基于某人组的模板的访问
我尝试像这样更改我的 view.py 和 HTML 模板:
views.py
class PostListView(ListView):
model = BlogPost
paginate_by = 10
template_name = 'main/mysite.html'
def dispatch(self, request):
in_group = request.user.groups.filter(name='GROUP_NAME').exists()
return in_group
HTML 模板
....
{% if in_group %}
some code here shows up if user belong to group
{% endif %}
....
当用户不是该组的成员时,这将给我正确的显示,但是当他们是正确组的成员时,我得到一个归属错误:
Exception Type: AttributeError at /mysite
Exception Value: 'bool' object has no attribute 'get'
【问题讨论】:
标签: django django-class-based-views django-permissions