检查类是否具有特定属性

问题描述 投票:0回答:1

我有以下类,名为 custom_class.py。我所需要的只是一种方法来检查我的视图中某个用户是否是管理员,并显示一些 DIV,如果不是,则隐藏它们。

class Backend_user:
    parents = {'Administrator': 'None',
               'Supervisor': 'Administrator',
               'Operator': 'Supervisor',
               }
    childs = {'Administrator': 'Supervisor',
              'Supervisor': 'Operator',
              'Operator': 'Boss',
              }

    def __init__(self, user):
        self.user = user
        self.permissions = OrderedDict()
        self.permissions_plural = OrderedDict()
        self.permissions_plural['Administrator'] = 'Administrators'
        self.permissions_plural['Supervisor'] = 'Supervisors'
        if hasattr(user, "administrator"):
            self.my_specialty = getattr(user, 'administrator')
            self.permissions['Administrator'] = True
            self.permissions['Supervisor'] = True
            self.permissions['Operator'] = True
            self.permissions['Boss'] = True
        elif hasattr(user, "supervisor"):
            self.my_specialty = getattr(user, 'supervisor')
            self.permissions['Administrator'] = False
            self.permissions['Supervisor'] = True
            self.permissions['Operator'] = True
            self.permissions['Boss'] = True
python
1个回答
0
投票

假设您有一个具有某种名称的用户表,它也是 Backend_user 表的外键,因此您可以简单地检查用户是否是管理员。您必须从用户表中获取用户对象,然后检查它是否具有该属性

def some_view(request):
    user_obj = CustomUser.objects.get(id=some_id) # get the user here
    if hasattr(user_obj, "administrator"):  # checking if user is admin
        # show some div
    else:
        # don't show
© www.soinside.com 2019 - 2024. All rights reserved.