Buna okumaya gerek: Custom Filter in Django Admin on Django 1.3 or below
(burada birinci ve buna göre ikinci için) böyle bir şey yapmak, aramaları değiştirmeye gerek kalmadan, tarif
the doc olduğu gibi bu durumda
,
from django.db import models
from django.contrib.admin.filterspecs import FilterSpec, ChoicesFilterSpec
from django.utils.encoding import smart_unicode
from django.utils.translation import ugettext as _
class BNullSetFilterSpec(FilterSpec):
def __init__(self, f, request, params, model, model_admin):
super(BSetFilterSpec, self).__init__(f, request, params, model, model_admin)
self.links = (
('Yes', {'b__isnull': False}),
('No', {}))
def title(self):
return _('B Set')
# registering the filter
FilterSpec.filter_specs.insert(0, (lambda f: getattr(f, 'empty_bset', False), BNullSetFilterSpec))
Bu, herhangi bir test yapmadan benim ilk girişimi, ancak fazla veya daha az onun yapılması nasıl görmelisiniz) 've' A.objects.filter (b__isnull = False, some_condition = False) yardım? – mkoistinen
Belki, ama nasıl bir sorgu yapmak için değil, nasıl özel bir display_filter yazabilirim diye soruyorum. – aemdy
Django 1.4'e bir seçenek yükseltme şansı var mı? Liste filtreleri burada daha esnek bir hale geldi. Temel olarak kendi liste filtre sınıfınızı belirtebilirsiniz: https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter – ptrck