1

私は作るのに失敗し、一緒django-filterdjango-guardian働きます。私が必要としているのはItemsFilterView、ユーザーが表示権限を持つすべてのアイテムを一覧表示してフィルターできるようにすることです。以下は、最も関連性が高いと思われる私のコードの部分です。リクエストに応じてさらに追加できます。

# 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')クエリセットを取得する前に、許可されたアイテムのみにクエリセットを絞り込むために使用する必要があると思いますdjango-filterが、追加する適切な場所が見つかりません。

4

1 に答える 1

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
于 2013-10-25T15:01:32.077 に答える