0

次のような単純なモデルがあります。

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())

これで問題なく、Neighborhood モデルのすべてのオプションが一覧表示されます。次のようになります。

  • ローワー イースト サイド
  • タイムズスクエア
  • イースト ビレッジ
  • ウエスト ビレッジ
  • ...等

    ただし、近隣の親カテゴリ、この場合は自治区をリストしたいと思います。望ましい外観は次のようになります。

  • ブルックリン

    • ウィリアムズバーグ
    • ダンボ
    • ...
  • マンハッタン
    • ローワー イースト サイド
    • タイムズスクエア
    • ウエスト ビレッジ
    • イースト ビレッジ
  • クイーンズ
    • ...

2 つの異なるオブジェクトを呼び出して、それらをカスタム リストに結合しようとしましたが、「すべて」を使用できないために AttributeError が発生したため、クエリセットを介してそれを渡すことができません。

これを行う別の方法はありますか?

4

2 に答える 2

1

最善の方法は、カスタム フォーム ウィジェットを作成することだと思います。

簡単な(そして悪くない)方法は<select>、テンプレートにタグを手動で出力することです。regroup filter がすべての仕事をします。

于 2011-05-30T06:51:47.280 に答える