django rest 框架中的验证
Validation in django rest framework
我正在尝试验证 django rest 框架中的现有记录并遵循 link
在我的序列化程序中 class 我有我的 class 喜欢 .
from django.forms import widgets
from rest_framework import serializers
from models import Part
class PartSerializer(serializers.Serializer):
part_id = serializers.CharField(required=True, validators=[UniqueValidator(queryset=Part.objects.all())] )
capacity = serializers.IntegerField(required=True)
price = serializers.IntegerField(required=True)
def create(self, validated_data):
"""
Create and return a new `Part` instance, given the validated data.
"""
# try:part_exist = Part.objects.get(part_id = validated_data['part_id'])
# except:part_exist = None
# if part_exist:
# raise serializers.ValidationError('Part name already exist.')
# else:
return Part.objects.create(**validated_data)
但是我总是报错name 'UniqueValidator' is not defined
我不知道如何导入它,因为它在文档中没有提到。请帮我解决这个问题。如果不可能,我应该在视图下编写自己的验证逻辑吗?
谢谢
您应该从 rest_framework.validators
模块导入 UniqueValidator
:
from rest_framework.validators import UniqueValidator
我正在尝试验证 django rest 框架中的现有记录并遵循 link
在我的序列化程序中 class 我有我的 class 喜欢 .
from django.forms import widgets
from rest_framework import serializers
from models import Part
class PartSerializer(serializers.Serializer):
part_id = serializers.CharField(required=True, validators=[UniqueValidator(queryset=Part.objects.all())] )
capacity = serializers.IntegerField(required=True)
price = serializers.IntegerField(required=True)
def create(self, validated_data):
"""
Create and return a new `Part` instance, given the validated data.
"""
# try:part_exist = Part.objects.get(part_id = validated_data['part_id'])
# except:part_exist = None
# if part_exist:
# raise serializers.ValidationError('Part name already exist.')
# else:
return Part.objects.create(**validated_data)
但是我总是报错name 'UniqueValidator' is not defined
我不知道如何导入它,因为它在文档中没有提到。请帮我解决这个问题。如果不可能,我应该在视图下编写自己的验证逻辑吗?
谢谢
您应该从 rest_framework.validators
模块导入 UniqueValidator
:
from rest_framework.validators import UniqueValidator