Измените элемент выбора/опции формы, отображаемый моделью, на флажки с несколькими вариантами выбора с помощью Django
Мне нужно изменить два поля формы (сейчас select/option) на флажки с несколькими вариантами выбора в форме, которая отображается из модели. Несмотря на внимательное чтение документации Django, у меня не получается отобразить их, т.е. ничего не происходит. Что мне нужно сделать в models.py, чтобы отобразить чекбоксы? (Для простоты я отображаю код только для одного поля)
Пока что в form.py:
class CreateVariantForm(ModelForm):
class Meta:
model = VariantView
fields = '__all__'
suitable_for = forms.MultipleChoiceField(choices=VariantView.SuitableForProduct.choices, widget=forms.CheckboxSelectMultiple)
В models.py:
class VariantView(models.Model):
class SuitableForProduct(models.TextChoices):
JEWELLERY = "Jewellery", _("Jewellery")
ACCESSORIES = "Accessories", _("Accessories")
COSMETICSHYGIENE = "Cosmetics & Hygiene", _("Cosmetics & Hygiene")
ELECTRONICSGADGETS = "Electronics & Gadgets", _("Electronics & Gadgets")
suitable_for_product = models.CharField(max_length=255, choices=SuitableForProduct.choices, null=True, blank=True )
class Meta:
managed = False
db_table = "variant_view"
В views.py:
class ProductUpdate(LoginRequiredMixin, UpdateView):
login_url = "/"
model = VariantView
template_name = "searchapp/product_update_form.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["suitable_for_product"] = SuitableForProduct.objects.values_list(
"suitable_for", flat=True
)
return context
def get_success_url(self):
return reverse_lazy("listvariants", args=[self.object.product_group_id])``
```