В 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.