Помогите найти ошибку. Форма с нескольким выбором к одному полю + возможность удаления выбранного

Есть таблица разрешений

 edit_user = 'edit_user'
 view_all = 'view_all'
 create_user = 'create_user'
 delete_user = 'delete_user'
 add_user = 'add_user'
 permissions_choice = [
     (edit_user, 'Can edit user '),
     (view_all, 'Can view all'),
     (create_user, 'Can create user'),
     (delete_user, 'Can delete user'),
     (add_user, 'Can add user'),

]

Имеется модель.

class Perm(models.Model):
    user_perm = models.ForeignKey(User, on_delete=models.CASCADE, null=True,
                              blank=True, related_name='user_perm')


    choices_perm = models.CharField(max_length=150, choices=permissions_choice, null=True,)

def __str__(self):
    return f"{self.user_perm} {self.choices_perm}"

class Meta:
    unique_together = ['user_perm', 'choices_perm']
    verbose_name_plural = 'Разрешения'
    verbose_name = 'Разрешение'

Форма

class PermForm(forms.ModelForm):
choices_perm = forms.MultipleChoiceField(
    required=False,
    widget=forms.CheckboxSelectMultiple,
    choices=permissions_choice)

class Meta:
    model = Perm
    fields = "__all__"

Views.py

def add_user_perm(request):
user_permissions = Perm.objects.filter(choices_perm='choices_perm').delete
if request.method == "POST":
    form = PermForm(request.POST)
    try:
        if form.is_valid():
            perm = form.save(commit=False)
            perm.save()
            messages.info(request, ttrans("PermissionsDodano"))
            return redirect('permissions:add_user_perm')
        if request.POST.get('delete'):
            user_permissions.delete()
            messages.info(request, ttrans("AdresUsunietoPomyslnie"))
            return redirect('account:info_company')
        else:
            messages.info(request, ttrans("PermissionsDontSaved"))
            return redirect("permissions:add_user_perm")
    except Exception as e:
        messages.info(request, str(e))
else:
    form = PermForm()
    context = {
        'breadcrumb': [
            {'url': reverse('permissions:add_user_perm'), 'title': ttrans("Dodać uchwały ")},
        ],
        'form': form,
        "choices": permissions_choice,
    }
    return render(request, 'permissions/add_user_perm.html', context)

и HTML

  <div class="card">
    <div class="card-content">

    <h6>Add perm</h6>
    <form method='post'>
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="save btn btn-default">Save</button>
        <button type="submit" name="delete" class="waves-effect waves-light btn red-button white-text">Delete</button>
    </form>
</div>

Я хотел сделать форму множественного выбора.Что бы одному человеку можно было присвоить сразу много разрешений. А не тыкать по одному.+ Реализовать удаление выбранного. С удалением тоже не получилось. Возможно это чекбокс в html ? Но я не знаю как его использовать с django

Отрендереный шаблон .введите сюда описание изображения


Ответы (0 шт):