Как в Django реализовать виджет CheckboxSelectMultiple?

В Django для реализации виджета CheckboxSelectMultiple используется класс формы MultipleChoiceField с атрибутом widget, установленным в форму CheckboxSelectMultiple.

Вот пример реализации виджета CheckboxSelectMultiple в Django:

1. В вашей форме (форме, которую вы создаете в Django) определите поле, которое вы хотите сделать множественным выбором, с использованием класса MultipleChoiceField:

from django import forms

class MyForm(forms.Form):
    choices = (('1', 'Choice 1'), ('2', 'Choice 2'), ('3', 'Choice 3'))
    my_field = forms.MultipleChoiceField(
        choices=choices,
        widget=forms.CheckboxSelectMultiple
    )

2. Затем вы можете использовать эту форму в представлении Django и в шаблоне:

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # обрабатываем валидную форму
            pass
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

3. В шаблоне (my_template.html) выведите форму и все виджеты, включая виджет CheckboxSelectMultiple:

<form method="post" action="{% url 'my_view' %}">
    {% csrf_token %}
    {% for field in form %}
        <div class="fieldWrapper">
            {{ field.label_tag }} {{ field }}
            {% if field.errors %}
                <span class="error">{{ field.errors }}</span>
            {% endif %}
        </div>
    {% endfor %}
    <input type="submit" value="Submit">
</form>

Теперь, когда пользователь отправляет форму, Django автоматически обработает данные и применит результирующий список выбранных значений к полю формы "my_field". Вы можете получить эти значения в представлении, используя form.cleaned_data['my_field'].

Надеюсь, эта информация полезна и помогает вам реализовать виджет CheckboxSelectMultiple в Django.