首页 > 解决方案 > django - 限制特定用户组的 div 的可见性

问题描述

我在 Django 框架中创建了一个博客应用程序。我已经设置了登录、注销和注册身份验证系统,因此授权用户可以看到所有内容,而未经授权的用户只能看到主页。我正在使用 django cms,因此人们可以在网站上添加和编辑内容。我在管理页面上创建了 2 组用户:经理和编辑。经理无所不能,编辑权限有限。

我想直接在博客文章页面上应用类似的内容,并限制我的博客文章(DetailvedView 页面)中的元素供编辑使用。

我的博客文章页面中有 2 个 div。第一个 div(class='everyone') 应该对所有人可见,第二个 div (class='managers') 应该只对 manager 组可见?

我不仅想通过使用user.is_authenticated而且扩展它来授予权限,并决定每组用户在网站上看到的内容。

标签: pythondjangodjango-views

解决方案


如果您要检查模板中的权限,您可以这样做:

一般来说 :

{% if perms.app_label.can_do_something %}
<!-- Some div here -->
{% endif %}

在您的情况下: 我们假设这is_manager是检查用户是否是经理的 id 的权限

{% if perms.app_label.is_manager %}
<!-- Show what managers only can see here -->
{% endif %}
<!-- Here everyone can see -->

更多信息在这里和这篇文章


推荐阅读