Как скрыть "набор полей" при изменении роли пользователя в админке

Здравствуйте, я хочу скрыть некоторые наборы полей в админке при изменении роли пользователя. В get_queryset() я изменяю набор запросов, если role == 'CMS' я также хочу скрыть Permission набор полей для той же роли. Вот моя админка:

from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import Permission
from .models import BankAccount
from addresses.models import Address

User = get_user_model()


class AddressInline(admin.TabularInline):
    model = Address
    extra = 0


@admin.register(User)
class UserAdmin(BaseUserAdmin):
    list_display = (
        'id', 'full_name', 'email', 'gender', 'role',
    )
    list_filter = (
        'gender', 'is_staff', 'is_superuser', 'is_active',
    )
    list_display_links = (
        'full_name', 'email',
    )
    search_fields = (
        'email', 'first_name', 'last_name', 'phone_number', 
    )
    
    readonly_fields = (
        'created', 'updated',
    )
    ordering = ('first_name', 'email', 'last_name',)

    fieldsets = (
        ('Credentials', {'fields': ('email', 'phone_number', 'password')}),
        ('Info', {'fields': ('first_name', 'last_name', 'gender', 'role', 'otp', 'profile_pic', 'created', 'updated')}),
        ('Permissions', {'fields': ('is_vendor', 'is_staff', 'is_superuser', 'is_active', 'groups', 'user_permissions')}),
    )
    add_fieldsets = (
        ('Credentials', {'fields': ('email', 'phone_number', 'password1', 'password2')}),
        ('Info', {'fields': ('first_name', 'last_name', 'gender', 'role', 'profile_pic')}),
        ('Permissions', {'fields': ('is_vendor', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
    )
    inlines = (AddressInline,)
    
    def full_name(self, obj=None):
        return f'{obj.first_name} {obj.last_name}'


    def get_queryset(self, request):
        if request.user.role == 'CMS':
            return self.model.objects.filter(
                role='CUSTOMER', is_staff=False, is_superuser=False
            )
        else:
            return self.model.objects.all()

admin.site.register(Permission)
admin.site.register(BankAccount)

В этой админке, в get_queryset() здесь я меняю кверисет, если роль "CMS". То же самое, я не хочу отображать раздел Permission из опции fieldsets.

Как я могу этого добиться? Заранее спасибо

Вернуться на верх