我有这个型号:
class MyModel(User):
#others fields
和这个序列化器:
class MySerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('username', 'password', 'some_field')
我从ajax获取数据进行登录,我按照这样处理:
serializer = MySerializer(data=request.DATA)
print(serializer.is_valid())
问题:当我发送任何数据时,我的序列化程序可以正常工作,但当username field
(必须是唯一的User model
描述)与数据库中的一个匹配时,序列化变为无效,因此serializer.is_valid()
返回错误
为什么呢?我不能创建一个序列化对象,其数据必须是唯一的并且已经存在于数据库中?
答案 0 :(得分:3)
因为您正在使用ModelSerializer
自动为序列化程序生成验证器。您应该使用普通的Serializer
课程。