[英]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.