Как проверить, входит ли пользователь в группу django по умолчанию? в панели администратора (admin.py)

Моя логика такова: когда пользователь с привилегией is_stuff заходит в админ панель и пытается создать, например, новость, то программа проверяет его, в какой группе он находится, если эта группа существует, то она должна выдать наборы полей с ограниченными возможностями, или другие поля...

Я проверил эту ссылку (In Django, how do I check if a user is in a certain group? ), но она не работает для моей ситуации, так как я должен проверять в панели администратора, а не возвращать ее в 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

admin.py (b):

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

обратный вызов:

IndexError: list index out of range

admin.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
Вернуться на верх