Когда я создаю пользовательские разрешения, после сохранения автоматически удаляются сохраненные разрешения в Django

В классе администратора Django для страницы создания группы я добавил дополнительные поля. На основе этих полей мне нужно отфильтровать и установить разрешения для группы. Однако проблема возникает в методе сохранения. Хотя он сохраняет разрешения, во время отладки я заметил, что метод save_m2m() в суперклассе удаляет все назначенные разрешения

class CustomGroupForm(forms.ModelForm):
    env_name = forms.CharField(max_length=100, required=False)
    schema_name = forms.CharField(max_length=100, required=False)

    class Meta:
        model = Group
        fields = ['name', 'permissions', 'env_name', 'schema_name']

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.fields['permissions'].queryset = Permission.objects.none()
        

    def save(self, commit=True):
        group = super().save(commit=False)
        
        # Use the name field as the prefix to filter permissions
        name = self.cleaned_data.get('name', '')
        prefix = name
        logger.info(f'Prefix 1: {prefix}')
        
        # Filter permissions using the prefix
        filtered_permissions = Permission.objects.filter(
            content_type__app_label__startswith=prefix
        )
        
        # Save the group first to ensure it has an ID
        group.save()
        
        # Set the filtered permissions
        group.permissions.set(filtered_permissions)
        
        if commit:
            group.save()

        return group

Я ожидал, что пользовательская логика в методе save будет корректно сохранять отфильтрованные разрешения для группы без перезаписи. В частности, я хотел, чтобы динамически отфильтрованные разрешения сохранялись после сохранения, а метод save_m2m() не очищал их.

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