首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django使用原生sql的权限管理

Django使用原生sql的权限管理
EN

Stack Overflow用户
提问于 2020-02-12 11:01:09
回答 1查看 58关注 0票数 0

我的Django程序使用原生mysql进行查询。没有ORM。后端管理系统有销售人员和管理人员。他们看到的是不同的界面。管理员可以看到所有界面,而销售人员只能看到部分界面,我该怎么办?我是python的新手,还没有接触过这样的问题。我非常需要帮助,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-02-12 12:14:07

Django docs中,你可以找到几种方法来做你需要的事情。

最简单的方法是使用装饰器。假设有一个简单的def视图:

代码语言:javascript
复制
from from django.contrib.auth.decorators import staff_member_required

@staff_member_required
def view_page(request, *args, **kargs):
  return render(request, "view.html", {})

现在,管理员(拥有所有权限)和工作人员都可以访问view.html。普通用户或匿名用户将得到“访问被拒绝的页面”

您可以在类视图中使用PermissionRequiredMixin实现相同的目标:

代码语言:javascript
复制
from django.contrib.auth.mixins import PermissionRequiredMixin

class MyView(PermissionRequiredMixin, View):
   permission_required = 'is_staff'

或者有一些特殊的烫发:

代码语言:javascript
复制
permission_required = 'AppLabel.can_dosomething'

请注意,在这种情况下,用户需要AppLabel的'can_dosomething‘权限。

但要注意,用户Django模型中的is_staff标志提供的权限很少,比如查看管理站点和其他权限。如果你想要的只是一些烫发,而不是大量的烫发,你可能会觉得创建一个带有这些烫发的群组更舒服,并在那里添加你的“员工用户”。

上面的链接中有更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60180469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档