Для создания списка чекбоксов со значениями 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
.