Как сделать с помощью Джанго форм список чекбоксов со значениями ModelChoiceField?

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

1. Создайте модель, связанную с выбором, например, модель Category:

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

2. В файле forms.py создайте форму и добавьте поле categories в виде MultipleChoiceField.

from django import forms
from .models import Category

class MyForm(forms.Form):
    categories = forms.ModelMultipleChoiceField(
        queryset=Category.objects.all(),
        widget=forms.CheckboxSelectMultiple
    )

3. В представлении, которое будет обрабатывать эту форму, мы можем просто создать экземпляр формы и передать его в контекст шаблона:

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    form = MyForm()
    return render(request, 'my_template.html', {'form': form})

4. Наконец, вам понадобится шаблон my_template.html для отображения формы. Вот пример:

<form method="POST">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Submit</button>
</form>

После этого, когда пользователь будет заполнять форму, он сможет выбрать несколько категорий с помощью списка чекбоксов, которые будут загружены из модели Category.