кастомный фильтр, наследуюсь от admin.SimpleListFilter.
Мне нужно выбрать всех юзеров у которых не было оплаты в прошлом месяце (должники); Вопрос можно упростить,предположим у меня есть юзеры и комментарии — выбрать всех пользователей которые не писали комментарии за последний месяц.
Как написать SQL я знаю. А как при помощи admin.SimpleListFilter.queryset это сделать?
так запрос обычный джанго
class AdminDeviceFilter(admin.SimpleListFilter): title = "Has requested device" parameter_name = "requested" def lookups(self, request, model_admin): lookup = (("Yes", "Yes"), ("No", "No")) return lookup def queryset(self, request, queryset): if self.value() == "Yes": return queryset.filter(devices__status__exact=DEVICE_STATUS[3][0]) elif self.value() == "No": return queryset.exclude(devices__status__exact=DEVICE_STATUS[3][0])
те просто exclude и тайм ренж за прошлый месяц?
в в функции lookups делаете yes no (он должник или нет) в функции queryset при yes делаете то что выше написал Dan, и в блоке No exclude по тому же условию
Обсуждают сегодня