我的Django程序使用原生mysql进行查询。没有ORM。后端管理系统有销售人员和管理人员。他们看到的是不同的界面。管理员可以看到所有界面,而销售人员只能看到部分界面,我该怎么办?我是python的新手,还没有接触过这样的问题。我非常需要帮助,谢谢!
发布于 2020-02-12 12:14:07
在Django docs中,你可以找到几种方法来做你需要的事情。
最简单的方法是使用装饰器。假设有一个简单的def视图:
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实现相同的目标:
from django.contrib.auth.mixins import PermissionRequiredMixin
class MyView(PermissionRequiredMixin, View):
permission_required = 'is_staff'或者有一些特殊的烫发:
permission_required = 'AppLabel.can_dosomething'请注意,在这种情况下,用户需要AppLabel的'can_dosomething‘权限。
但要注意,用户Django模型中的is_staff标志提供的权限很少,比如查看管理站点和其他权限。如果你想要的只是一些烫发,而不是大量的烫发,你可能会觉得创建一个带有这些烫发的群组更舒服,并在那里添加你的“员工用户”。
上面的链接中有更多信息
https://stackoverflow.com/questions/60180469
复制相似问题