-1
'Cities'라는 모델이 있고 admin 측에 도시 이름을 기준으로 모델을 필터링하는 'city_name'필터가 있다고 가정합니다. 기본적으로 django는 장고 관리 필터에서 하나의 도시 이름 만 선택할 수 있습니다. 하지만 장고 admin 필터에서 다중 도시 이름을 선택해야합니다. 어떻게 할 수 있습니까? ??다중 선택 장고 관리 필터가 가능합니까?
'Cities'라는 모델이 있고 admin 측에 도시 이름을 기준으로 모델을 필터링하는 'city_name'필터가 있다고 가정합니다. 기본적으로 django는 장고 관리 필터에서 하나의 도시 이름 만 선택할 수 있습니다. 하지만 장고 admin 필터에서 다중 도시 이름을 선택해야합니다. 어떻게 할 수 있습니까? ??다중 선택 장고 관리 필터가 가능합니까?
당신은 여기 django.contrib.admin.SimpleListFilter
를 상속하여 장고 사용자 정의 list_filter를 사용하는 것은 빠른 예입니다
from django.contrib import admin
class MultiSelectFilter(admin.SimpleListFilter):
# Filter title
title = 'Cities'
# model field
parameter_name = 'city_name'
def lookups(self, request, model_admin):
# you can modify this part, this is less DRY approach.
# P.S. assuming city_name is lowercase CharField
return (
('city1,city2,city3', 'City1 or City2 or City3'),
('city4,city5,city6', 'City3 or City4 or City6'),
)
def queryset(self, request, queryset):
if self.value() in ('city1,city2,city3', 'city4,city5,city6'):
# filter if a choice selected
return queryset.filter(city_name__in=self.value().split(','))
# default for no filtering
return queryset
당신은 here
을 문서 도구에 대한 참조가