【问题标题】:The same validation for multiple views in django rest frameworkdjango rest框架中多个视图的相同验证
【发布时间】:2020-10-10 19:34:21
【问题描述】:

我创建了许多 API 端点,用于使用 DjangoRestFramework 接受 POST 请求。对于其中的 5/6,我需要在正文中有 1 个键来提供一些数据,因此对于我拥有的每个视图

if (key not in request.data):
  return Response('please provide key', status=400)

如何删除所有视图中的重复项?

【问题讨论】:

标签: python django post django-rest-framework api-design


【解决方案1】:

您可以在不同的文件中编写一个通用函数并将该函数导入您的views.py 中,这将为每个视图验证是否传递了请求正文中的键。

你的常用函数如下所示 common.py

def get_key(request):
    if (key not in request.data):
        return Response('please provide key', status=400)
    return request.data

您的视图将如下所示。 视图.py

from .common import get_key

    @api_view(['GET'])
    def userDetail(request,pk):
        key = get_key(request) #calling the function to check for key
        if key:
            users = User.objects.get(id=pk)
            serializer = UserSerializer(users, many=False)
            return Response(serializer.data)

这里我假设你使用的是基于函数的视图,如果你使用的是基于类的视图方法将是相同的。

希望对您有所帮助。快乐学习。

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2017-09-26
    • 2017-11-02
    相关资源
    最近更新 更多