Выбор группы категорий и подкатегорий OPT в Django
У меня есть две три модели:
- Объявление
- Категория
- Подкатегория
Это мой form.py
# Formulaire de la depose d'une annonce
class AnnonceForm(forms.ModelForm):
title = forms.CharField(label="", help_text="", widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder':'Titre de mon annonce'}))
category = forms.ModelChoiceField(queryset=Souscat.objects.all(), empty_label='Selectionnez une categorie', label="", help_text="", widget=forms.Select(attrs={'class': 'form-control'}))
class Meta:
model = Annonce
fields = ('title','category')
А это мои модели:
# Catégories
class Category(models.Model):
title = models.CharField(max_length=255)
slug = models.SlugField(null=True, unique=True)
created_date = models.DateTimeField(default=timezone.now)
class Meta:
verbose_name = "Catégorie"
verbose_name_plural = "Catégories"
def __str__(self):
return self.title
# Sous catégories
class Souscat(models.Model):
category = models.ForeignKey(Category, related_name="s_category", on_delete=models.CASCADE)
title = models.CharField(max_length=255)
slug = models.SlugField(null=True, unique=True)
created_date = models.DateTimeField(default=timezone.now)
class Meta:
verbose_name = "Sous catégorie"
verbose_name_plural = "Sous catégories"
def __str__(self):
return self.title
В моем объявлении я получу только подкатегории, но в моем select я хочу показать категории, а подкатегории могут быть выбираемыми. Я видел, что это возможно с "optgroup", но я успешно получил все подкатегории на моем, но я хочу показать категории (не выбираемые) в моем select с подкатегориями (выбираемыми).
Для категории я делаю просто {{ form.category }}
Как я могу это сделать?
Спасибо
Я знаю, что прошло много времени, но у меня недавно была такая же трудность, и я решил ее с помощью этого сайта.
По сути, были созданы два класса, которые генерируют код и делают волшебство! Для меня это сработало идеально.