我正在使用AJAX将JSON提交到django视图。JSON如下所示:
{
"code":"9910203040", // required
"name":"Abc", // required
"payments":[
{
"amount":300, // required
"name":"efg", // required,
"type": 2 // can be empty
},
{
"amount":100,
"name":"pqr",
"type": 3
}
]
}
Run Code Online (Sandbox Code Playgroud)
付款清单可以是任何大小。如何在Django中验证?是否可以使用Django Forms进行验证?如果是Spring,我将创建Request类并在字段上使用注释,但无法弄清楚如何在Django中执行此操作。
您可以使用django rest框架来验证请求数据,如@ zaphod100.10所述,
这是您可以用来验证的序列化器-
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)
Run Code Online (Sandbox Code Playgroud)
您需要这样才能在“视图”部分中对其进行验证-
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)
Run Code Online (Sandbox Code Playgroud)
让我知道,是否足以解决您的问题。
| 归档时间: |
|
| 查看次数: |
5095 次 |
| 最近记录: |