Django rest serializer Breaks when data exists

2019-07-03 14:48发布

问题:

I have this model:

class MyModel(User):
    #others fields

and this serializer:

class MySerializer(serializers.ModelSerializer):
    class Meta:
        model = MyModel
        fields = ('username', 'password', 'some_field')

I get data from ajax to make a login and I handle it like this:

serializer = MySerializer(data=request.DATA)
print(serializer.is_valid())

The problem: When I send any data my serializer works but when my username field, which must be unique as User model describe, matches with one at the database the serialize become invalid, so serializer.is_valid() return False

Why? can not I create a serialize object with data which must be unique and already exists in the database?

回答1:

Because you are using ModelSerializer which automatically generates validators for your serializer. You should use normal Serializer class instead.

Validation in REST framework