Назначение пользовательской роли пользователю

Я новичок в django и пытаюсь создать веб-приложение для своей задачи. Я пытаюсь назначить роли каждому пользователю. Но у меня возникает ошибка. введите описание изображения здесь

Моя модель

 class Rol(Group):

   state = models.BooleanField(default=True)
   description = models.CharField(max_length=200)
   permission = models.ManyToManyField(Permission)

   def __str__ (self):
       return '{}'.format(self.state,self.description, self.permission)

В этой части у меня нет никаких проблем, разрешение назначено на rol

Но вот Моя модель:

  class User(AbstractUser):
      state = models.BooleanField(default=True)
      roles = models.ManyToManyField(Rol)
    def __str__ (self):
       return '{}'.format(self.username,self.state,self.roles)

Моя форма:

 class UserForm(UserCreationForm):
    username = forms.CharField(label="User",widget=forms.TextInput(attrs= 
    {"class":"form-control"}))
    password1 = forms.PasswordInput()
    password2 = forms.PasswordInput()
    state = forms.CheckboxInput()
    roles =forms.ModelMultipleChoiceField(label="Roles",queryset=Group.objects.all(),
    widget=forms.CheckboxSelectMultiple)

   class Meta:
       model = User

    fields = [
        "username",
        "password1",
        "password2",
        "activo",
        "roles"
        ]

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

  • Поле 'id' ожидало число, но получило <Group: standart>.
  • Приведенное выше исключение (аргумент int() должен быть строкой, байтоподобным объектом или действительным число, а не 'Group') было непосредственной причиной следующего исключения:

Выделите эту строку

  • form.save_m2m()

Мое мнение

  def create_user(request):
     if request.method == 'POST':
       form = UserForm(request.POST)
       if form.is_valid():
         form2=form.save(commit=False)
         form2.save()
         form.save_m2m()
       return redirect('list_user')
      return render(request, 'user/user_form.html',{'form': form})
     else:
      form = UserForm()
     return render(request, 'user/user_form.html',{'form': form})

OBS: Но в моей пользовательской форме при изменении набора ролей: Group by Rol, он назначает роли, но не перечисляет имена, только состояния

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