如何在Django中验证JSON对象 [英] How to validate a json object in django

查看:501
本文介绍了如何在Django中验证JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用AJAX将JSON提交到django视图. JSON如下所示:

I'm submitting a JSON to a django view with AJAX. The JSON looks like the following:

{
   "code":"9910203040", // required
   "name":"Abc", // required
   "payments":[
      {
         "amount":300, // required
         "name":"efg", // required,
         "type": 2 // can be empty
      },
      {
         "amount":100,
         "name":"pqr",
         "type": 3
      }
   ]
}

付款清单可以是任何大小.如何在Django中对此进行验证?是否可以使用Django Forms进行验证?如果是Spring,我会创建Request类并在字段上使用批注,但无法弄清楚如何在Django中做到这一点.

The payments list can be of any size. How can I validate this in Django? Is it possible to use Django Forms to validate this? If it was Spring, I would create Request classes and use annotations on fields but can't figure out how to do this in Django.

推荐答案

您可以使用django rest框架来验证请求数据,如@ zaphod100.10所述,

You can use django rest framework to validate request data as mentioned by @zaphod100.10 ,

这是可用于验证的序列化程序-

here is the serializer you can use to validate-

from rest_framework import serializers

class PaymentSerializer(serializers.Serializer):
    amount = serializers.IntegerField(required=True, min_value=0, null=True)
    name = serializers.CharField(required=True, max_length=128)
    type = serializers.IntegerField(required=True, min_value=0)

class ValidateFormSerializer(serializers.Serializer):
    code = serializers.CharField(required=True, max_length=32)
    name = serializers.CharField(required=True, max_length=128)
    payments = serializers.ListField(child=PaymentSerializer)

您需要像这样在视图部分中对其进行验证-

You need like this to validate it in the view section -

 import ValidateFormSerializer

# add this snippet in your view section
 valid_ser = ValidateFormSerializer(data=request.data)
 if valid_ser.is_valid():
       post_data = valid_ser.validated_data
 else:
      print(valid_ser.errors)

如果足以解决您的问题,请告诉我.

Let me know, if it is enough to solve your problem.

这篇关于如何在Django中验证JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆