2013-10-25 3 views
1

Я не могу сделать django-filter и django-guardian работать вместе. Мне нужен ItemsFilterView, который позволяет пользователю просматривать и фильтровать все элементы, которые у нее есть для просмотра. Ниже приведены части моего кода, которые, по моему мнению, наиболее актуальны. Я могу добавить больше по запросу.Использование django-фильтра вместе с django-guardian

# filters.py 
class ItemFilterSet(FilterSet): 
    class Meta: 
     model = Item 

# views.py 
class ItemFilterView(FilterView): 
    filterset_class = ItemFilterSet 

# urls.py 
url(r'^items/$', ItemFilterView.as_view(), name='item_list'), 

Я думаю get_objects_for_user(request.user, 'view_item') следует использовать, чтобы сузить QuerySet только к разрешенным пунктам, прежде чем django-filter получает свои руки на них, но я не нашел подходящее место, чтобы добавить его.

ответ

1

я нашел нужное место, чтобы добавить логику:

# views.py 
class ItemFilterView(FilterView): 
    filterset_class = ItemFilterSet 

    def get_queryset(self): 
     qs = Item.objects.all() 
     qs = get_objects_for_user(self.request.user, 'view_item', qs) 
     return qs 
Смежные вопросы