Как проверить, входит ли пользователь в группу 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