{"id":21173,"library":"djangorestframework-guardian","title":"Django REST Framework Guardian","description":"Provides django-guardian integration with Django REST Framework, enabling object-level permissions via DRF's permission system. Current version 0.4.0, updated 2025. Release cadence is low (last release years ago). Compatible with DRF 3.x and guardian 2.x.","status":"maintenance","version":"0.4.0","language":"python","source_language":"en","source_url":"https://github.com/rpkilby/django-rest-framework-guardian","tags":["django","rest-framework","guardian","object-permissions","authorization"],"install":[{"cmd":"pip install djangorestframework-guardian","lang":"bash","label":"Standard install"}],"dependencies":[{"reason":"Required; DRF integration.","package":"djangorestframework","optional":false},{"reason":"Required; provides object-level permissions.","package":"django-guardian","optional":false}],"imports":[{"wrong":"from rest_framework_guardian.filters import DjangoObjectPermissionsFilter","symbol":"DjangoObjectPermissionsFilter","correct":"from rest_framework_guardian.filters import DjangoObjectPermissionsFilter"}],"quickstart":{"code":"from rest_framework import permissions\nfrom rest_framework_guardian.filters import DjangoObjectPermissionsFilter\nfrom rest_framework_guardian import mixins\n\nclass MyViewSet(mixins.ListModelMixin, mixins.CreateModelMixin, ...):\n    permission_classes = [permissions.IsAuthenticated, permissions.DjangoObjectPermissions]\n    filter_backends = [DjangoObjectPermissionsFilter]","lang":"python","description":"Enable object-level permissions in a DRF viewset by adding DjangoObjectPermissions to permission_classes and DjangoObjectPermissionsFilter to filter_backends."},"warnings":[{"fix":"Upgrade Python to 3.10+ and ensure Django>=3.2, DRF>=3.12.","message":"Version 0.4.0 requires Python >=3.10 and drops support for Django <3.2 and DRF <3.12.","severity":"breaking","affected_versions":"<0.4.0"},{"fix":"Ensure your model has object permissions assigned via guardian.","message":"DjangoObjectPermissionsFilter requires that view's queryset supports filtering by user permissions. For complex permission logic, override filter_queryset.","severity":"gotcha","affected_versions":"all"},{"fix":"Use filter_backends = [DjangoObjectPermissionsFilter] instead of mixins.","message":"The mixins module is experimental and may change. Prefer using DjangoObjectPermissionsFilter directly.","severity":"deprecated","affected_versions":"<=0.4.0"}],"env_vars":null,"search_vec":"'0.4.0':26 '2':44 '2025':28 '3':40 'ago':36 'author':54 'cadenc':30 'compat':37 'current':24 'django':1,7,11,46 'django-guardian':6 'drf':20,39 'enabl':14 'framework':3,13,49 'guardian':4,8,43,50 'integr':9 'last':33 'level':17 'low':32 'object':16,52 'object-level':15 'object-permiss':51 'permiss':18,22,53 'provid':5 'releas':29,34 'rest':2,12,48 'rest-framework':47 'system':23 'updat':27 'version':25 'via':19 'x':41,45 'year':35","created_at":"2026-04-27T16:58:27.819393+00:00","updated_at":"2026-04-27T16:58:27.819393+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/tmp/tmplpx_czr9/venv/lib/python3.12/site-packages/rest_framework_guardian/filters.py\", line 1, in <module>\n    from rest_framework.filters import BaseFilterBackend\n  File \"/tmp/tmplpx_czr9/venv/lib/python3.12/site-pac"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.4.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/rpkilby/django-rest-framework-guardian","docs":null,"changelog":"https://github.com/rpkilby/django-rest-framework-guardian/CHANGELOG","pypi":"https://pypi.org/project/djangorestframework-guardian/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["auth-security","web-framework","database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}