我有两个三个模型:
- 宣告
- 类别
- 子类别
这是我的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
在我的annouce,我将只得到子类别,但在我的选择我想显示类别和子类别可以选择。我已经看到这是可能的“optgroup”,但我已经成功地得到了我的所有子类别,但我想显示类别(不可选择)在我的选择与子类别(可选择)。
让我创建的类别简单地为{{ form.category }}
我怎么做这个?
谢谢你
1条答案
按热度按时间yqkkidmi1#
我知道这已经很长一段时间了,但我最近也遇到了同样的困难,我在这个网站的指导下解决了这个问题。
https://simpleisbetterthancomplex.com/tutorial/2019/01/02/how-to-implement-grouped-model-choice-field.html
基本上,创建了两个类来生成代码并使神奇发生!对我来说它工作得很完美。