我正在尝试验证发送的POST请求中的参数是有效的URL。
这是我的views.py
views.py
def post(self, request):
if url_validator(request) == 400:
return Jsonresponse(status=400)
这是我的utils.py。该文件将包含所有常规方法和类。
def url_validator(request, ext):
for key, value in request.data.items():
value = request.data[key]
try:
URLValidator(value)
except ValidationError:
return 400
当我从视图中调用函数url_validator
时,它会执行,但是当两个请求参数都不包含URL时不会返回异常。
例如,如果我传递参数param1: "some string"
,则它不会通过ValidationError路径。
如何从函数中获取正确的回报?
答案 0 :(得分:1)
验证器类在其实例化时不接受要验证的输入,而是在调用实例化对象时接受它:
validator = URLValidator()
validator(value)
但这实际上不是在Django中进行验证的方法。使用表单,或者如果您正在处理提交的JSON,请使用django-rest-framework序列化器。