簡體   English   中英

如何在 Django 中定義和引用自定義用戶組,我可以像 user.is_superuser 一樣對其進行排序?

[英]How can I define and refer to custom user groups in Django that I can sort against like user.is_superuser?

我在我的 Django 應用程序中創建了一些自定義用戶組,因為我想向他們展示不同的管理字段集。 我認為它們的工作方式與user.is_superuser類似。

但他們沒有。

我的 ModelAdmin 中有這個定義:

def is_approver(user):
        return user.groups.filter(name='approver').exists()

(順便說一下,我不知道那叫什么。你只是稱它為“def”嗎?)

所以這有效:

    def get_fieldsets(self, request, obj=None):
        if request.user.is_superuser:
            return self.superuser_fieldset

我得到了預期的字段集。

但這不起作用:

    def get_fieldsets(self, request, obj=None):
        if request.user.is_approver:
            return self.approver_fieldset

但是,這確實有效:

def get_fieldsets(self, request, obj=None):
    if request.user.groups.filter(name='approvers').exists():
         return self.approvers_fieldset

所以,我想我的基本問題是:為什么我的def不像我期望的那樣工作?

(Python 3.9.7,Django 3.1)

在用戶模型中添加此代碼

@property
def is_approver(self):
    return self.groups.filter(name='approver').exists()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM