2013-05-16 4 views
2

Я хочу создать фильтр списка в django 1.5, связан с моим полем, поэтому я не могу использовать SimpleListFilter, как в документации.Связанный с этим список полей Фильтр Django

мне нужно сделать это по причинам разрешения пользователя

У меня есть этот

class Stores_Contactos_Stores_ListFilter(RelatedFieldListFilter): 
    title = _('Por Tiendas') 
    parameter_name = 'store' 

    def lookups(self, request, model_admin): 
     return (
      ('80s', _('in the eighties')), 
      ('90s', _('in the nineties')), 
     ) 

class Store_Contacts_Admin(admin.ModelAdmin): 
    list_filter = ('date_create', ('store', Stores_Contactos_Stores_ListFilter)) 

остается без изменений Lookups, как если бы он не бросил какие-либо изменения в фильтр

ответ

3

метод поиска является Noy используемый классом RelatedFieldListFilter в пакете администратора, init метод

self.lookup_choices = field.get_choices(include_blank=False) 

Я переопределить инициализации метод в моем классе

def __init__(self, field, request, params, model, model_admin, field_path): 
    super(Stores_Contactos_Stores_ListFilter, self).__init__(
     field, request, params, model, model_admin, field_path) 
    if request.user.is_superuser: 
     self.lookup_choices = Stores.objects.values_list('store', 'store__name',) 
    .... 
Смежные вопросы