对ForeignKey相关表单字段进行分组

时间:2012-11-29 19:46:05

标签: django django-forms field

我有这两个模型

class Event(models.Model):
event_name=models.CharField("Event Name",max_length=255)
category = models.ManyToManyField(SubCategory)
def __unicode__(self):
    return self.event_name

class Category(models.Model):
   category_name= models.CharField(max_length=255)
   def __unicode__(self):
       return self.category_name


class SubCategory(models.Model):
    parent_category=models.ForeignKey(Category)
    category_name=models.CharField(max_length=255)
    def __unicode__(self):
        return self.category_name

在我的form.py

class EventForm(forms.ModelForm):
class Meta:
    model=Event

def __init__(self, *args, **kwargs):

    super(EventForm, self).__init__(*args, **kwargs)

    self.fields["category"].widget = CheckboxSelectMultiple()

    self.fields["category"].queryset = SubCategory.objects.all()

我创建了一个模型EventForm的表单,子类别显示为我想要的复选框。唯一的问题是,我想根据各自的父类别列出子类别复选框,但不知道如何做到这一点。任何人都可以帮我解决这个问题吗

1 个答案:

答案 0 :(得分:0)

我建议在class SubCategory中使用ManyToMany字段而不是ForeignKey。