2012-11-29 30 views
0

我有這兩款車型分組ForeignKey的相關表單域

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的一種形式和子類別顯示爲複選框,就像我意。唯一的問題是,我想根據他們各自的父類別列出子類別複選框,但不知道如何做到這一點。任何人都可以幫助我如何做到這一點

回答

0

我會建議在class SubCategory使用ManyToMany字段而不是ForeignKey。

+0

事情是,每個'Category'有很多'SubCategories',但一個子類別只能有一個父類'Category'。我想要的是一種表單,它將在各個父類別下顯示一組「子類別」作爲複選框。相反,表單僅列出從第一個到最後一個添加的所有子類別。 – flexxxit