提问人:Niels 提问时间:11/14/2023 更新时间:11/14/2023 访问量:23
我可以向 Django Rest Framework 中所有 Viewset 端点上的所有方法添加全局查询参数吗?
Can I add a global query parameter to all methods on all Viewset endpoints in Django Rest Framework?
问:
出于某种目的,我需要向所有 DRF API 视图集方法调用添加一个查询参数,并且我需要能够从 Swagger 提供。在 FastAPI 中,通过全局级别的依赖注入可以很容易地完成,如下所示:
async def code(code: Code = None):
"""Dependency to add code query parameter to all endpoints"""
pass
fastapi_app = FastAPI(docs_url=None, title="SAF2 API", dependencies=[Depends(code)])
但是我一直在 Django 中为自定义过滤器和中间件而苦苦挣扎,但我没有让它工作。过滤器似乎只适用于 GET 方法,我对中间件了解不多,无法自己编写一个。我可以用装饰器和其他东西手动将其放在所有端点上,但这一切都非常丑陋。我的视图集如下所示:
class CustomerViewSet(viewsets.ModelViewSet):
authentication_classes = [SessionAuthentication, BasicAuthentication]
permission_classes = [IsAuthenticated]
serializer_class = CustomerSerializer
queryset = Customer.objects.all()
filter_backends = [
filters.SearchFilter,
filters.OrderingFilter,
django_filters.rest_framework.DjangoFilterBackend,
]
search_fields = ["full_name", "name", "status"]
filterset_fields = ["full_name", "name", "status"]
任何帮助或对文档的引用将不胜感激!
一个不错的好处是将自定义标头添加到所有请求中。
答: 暂无答案
评论