Сгруппированный флажокSelectMultiple в шаблоне Django
Как я могу сгруппировать флажки, произведенныеCheckboxSelectMultiple
по родственной модели?
Это лучше всего продемонстрировано на примере.
models.py:
class FeatureCategory(models.Model):
name = models.CharField(max_length=30)
class Feature(models.Model):
name = models.CharField(max_length=30)
category = models.ForeignKey(FeatureCategory)
class Widget(models.Model):
name = models.CharField(max_length=30)
features = models.ManyToManyField(Feature, blank=True)
forms.py:
class WidgetForm(forms.ModelForm):
features = forms.ModelMultipleChoiceField(
queryset=Feature.objects.all(),
widget=forms.CheckboxSelectMultiple,
required=False
)
class Meta:
model = Widget
views.py:
def edit_widget(request):
form = WidgetForm()
return render(request, 'template.html', {'form': form})
template.html:
{{ form.as_p }}
Выше приведен следующий результат:
[] Widget 1
[] Widget 2
[] Widget 3
[] Widget 1
[] Widget 2
Я хотел бы, чтобы флажки функций были сгруппированы по категориям объектов (на основеForeignKey
):
Category 1:
[] Widget 1
[] Widget 2
[] Widget 3
Category 2:
[] Widget 1
[] Widget 2
Как мне этого добиться? Я пытался использовать{% regroup %}
Шаблон тега безрезультатен.
Любой совет высоко ценится.
Благодарю.