簡體   English   中英

如何檢查用戶是否在默認的 django 組中? 在管理面板 (admin.py)

[英]how to check if a user is in a default django group? in the admin panel (admin.py)

我的邏輯是,當具有 is_stuff 權限的用戶進入管理面板並嘗試創建例如新聞時,程序會檢查他,他在哪個組中,如果該組存在,那么它應該發布具有有限功能的字段集, 或其他領域...

我檢查了此鏈接( 在 Django 中,如何檢查用戶是否在某個組中? ),但它不適用於我的情況,因為我必須檢查管理面板而不是將其返回到 api 或模板。

我嘗試執行以下操作:在 admin.py (a)

    def get_fieldsets(self, request, obj=None):
       group = Group(name="OutSource")
       if request.user.groups(name=group):
          # first_fields = {...}
       else:
          # second_fields = {...}

打回來:

TypeError: 'NoneType' object is not callable

管理員.py (b):

if request.user.groups.all()[0].name == "OutSource":

打回來:

IndexError: list index out of range

管理員.py (c):

if request.user.groups.filter(name='OutSource').exists():

打回來:

unhashable type: 'dict'

對不起,我找到了解決問題的方法。 如果有人需要,這是答案

def get_fieldsets(self, request, obj=None):
    users_in_group = Group.objects.get(name="OutSource").user_set.all()
    if request.user in users_in_group:
       # fields = (...)
    else:
       # fields = (...)
    return fields

暫無
暫無

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

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