【发布时间】:2014-09-16 12:31:18
【问题描述】:
我有这个模型:
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() 返回 False
为什么?我不能使用必须唯一且已存在于数据库中的数据创建序列化对象吗?
【问题讨论】:
-
它试图创建
MyModel的新模型实例,但由于用户名已经存在,它不能有效地这样做。您应该使用AbstractUser 来继承用户。 -
您还应该确保序列化程序上的查找字段设置为
username。
标签: django serialization django-rest-framework django-users