在我的 Django 管理员模型的列表过滤器中,我有一个过滤器Category,我想添加一个过滤器Sub-category,其值取决于所选Category值。
我怎样才能做到这一点ModelAdmin.list_filter?
谢谢
为 Sub-Category创建一个继承自SimpleListFilter的类。
在方法内部lookups检查是否request.GET有匹配的查询字符串Category,如果有,则根据此过滤器创建一个查询集。
应该看起来像这样:(根据您的真实模型进行更改..可能有语法错误,我没有测试代码,但它应该看起来非常相似)
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
)