2011-05-29 23 views
0

我有一個簡單的模型,看起來像這樣:與父類別的Django選擇題形式

class Neighborhood(models.Model): 
    name = models.CharField(max_length=255) 
    borough = models.ForeignKey(Borough) 

    def __unicode__(self): 
     return self.name 

在我forms.py文件,我有一個簡單的形式被渲染與選擇:

class SearchForm(forms.Form): 
    neighborhood = forms.ModelMultipleChoiceField(required=False, queryset=Neighborhood.objects.all(), widget=CheckboxSelectMultiple()) 

這很好,並列出了我的鄰居模型中的所有選項。它看起來是這樣的:

  • 東城
  • 時代廣場
  • 東村
  • 西村
  • ...等

    不過,我想列出鄰居的父類別,在這裏是自治市鎮。所需的外觀會是這樣的:

  • 布魯克林

    • 威廉斯堡
    • DUMBO
    • ...
  • 曼哈頓
    • 東城
    • 時代廣場
    • 西村
    • 東村
  • 皇后
    • ...

我試着撥打兩個不同的對象,並將它們組合成一個自定義列表,但是我無法通過queryset傳遞它,因爲它給了我一個沒有'all'可用的AttributeError。

是否有另一種方法可以做到這一點?

回答

1

我認爲最好的方法是爲它編寫自定義表單部件。

簡單(也不錯)方式是手動輸出<select>模板中的標籤。 regroup過濾器將完成所有工作。

+0

謝謝DrTyrsa!我最初開始使用自定義小部件路線,但認爲必須有一個更簡單的方法。我只是手動輸出