1

私のDjango管理者のモデルのリストフィルターにフィルターがあり、選択した値に依存Categoryするフィルターを追加したいと思います。Sub-categoryCategory

を使用してこれを達成するにはどうすればよいModelAdmin.list_filterですか?

ありがとうございました

4

1 に答える 1

4

Sub-Category のSimpleListFilterを継承したクラスを作成します。

メソッド内で、 に一致するクエリ文字列が存在lookupsするかどうかを確認し、存在する場合は、このフィルターに基づいてクエリセットを作成します。request.GETCategory

次のようになります: (実際のモデルに応じて変更します。構文エラーがある可能性があります。コードはテストしていませんが、非常に似ているはずです)

class SubCategoryFilter(SimpleListFilter):
    title = 'sub category'
    parameter_name = 'sub_category'

    def lookups(self, request, model_admin):
        sub_categories = Category.objects;
        if 'category' in request.GET:
             sub_categories = sub_categories.filter(main_category=request.GET['category'])
        return (
            (sub_cat.pk,sub_cat.text) for sub_cat in sub_categories
        )
于 2013-01-29T12:33:47.987 に答える