Я смог заставить это работать, определив Filter
для использования с Wheel
ViewSet
filter_backends
:
from rest_framework.filters import BaseFilterBackend
class CarObjectPermissionsFilter(BaseFilterBackend):
perm_format = '%(app_label)s.view_%(model_name)s'
def filter_queryset(self, request, queryset, view):
permission = cls.perm_format % {
'app_label': Car._meta.app_label,
'model_name': Car._meta.model_name,
}
car_ids = get_objects_for_user(user, permission, Car.objects.values_list('pk', flat=True))
return queryset.filter(car__in=car_ids)