我想要的是什么:
@api_view(['POST'])
@params(required=["arg1", "arg2"], optional=["arg3"])
def test(request):
# if arg1, args not posted, abort 400 or something
arg1 = request.data.get("arg1")
arg2 = request.data.get("arg2")
arg3 = request.data.get("arg3")
# do something
我使用其余的框架,但似乎只有串行器的验证器。
答案 0 :(得分:2)
为什么不在某处定义基本函数并通过视图函数调用。
例如,验证器代码段在这里:
@staticmethod
def checkMandatoryParams(request, params):
msg = "need param `%s`"
for param in params:
if param not in request.data:
return JsonResponse({'retcode':1,'msg': msg})
然后,从视图函数中调用此人:
def handle_test(self, request):
ret = checkMandatoryParams(request, ['images','tasks','whatever'])
# check ret to return or not , or you can even wrap the validator to return by case
通过这种方式,您可以定义任何验证器。