有什么方法可以在python(Django)中检查视图函数的参数吗?

时间:2017-11-16 04:45:33

标签: python django

我想要的是什么:

@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

我使用其余的框架,但似乎只有串行器的验证器。

1 个答案:

答案 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

通过这种方式,您可以定义任何验证器。