django rest框架中多个视图的相同验证
Posted
技术标签:
【中文标题】django rest框架中多个视图的相同验证【英文标题】:The same validation for multiple views in django rest framework 【发布时间】: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)
如何删除所有视图中的重复项?
【问题讨论】:
使用serializers 【参考方案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)
这里我假设你使用的是基于函数的视图,如果你使用的是基于类的视图方法将是相同的。
希望对您有所帮助。快乐学习。
【讨论】:
以上是关于django rest框架中多个视图的相同验证的主要内容,如果未能解决你的问题,请参考以下文章
电子邮件验证和密码重置 - django rest 框架和 angularjs
如何查看数据库中是不是有其他用户具有相同的用户名 - JWT Django REST 身份验证
具有社交身份验证和请求发布的 Django Rest 框架(CSRF-Security)