小编Ign*_*vro的帖子

关于Django Rest Framework上嵌套序列化器的唯一验证

我有这样的情况,你有一个自定义嵌套序列化器关系与唯一字段.样例:

class GenreSerializer(serializers.ModelSerializer):

    class Meta:
        fields = ('name',) #This field is unique
        model = Genre

class BookSerializer(serializers.ModelSerializer):

    genre = GenreSerializer()

    class Meta:
        model = Book
        fields = ('name', 'genre')

    def create(self, validated_data):
        genre = validated_data.pop('genre')
        genre = Genre.objects.get(**genre)
        return Book.objects.create(genre=genre, **validated_data)
Run Code Online (Sandbox Code Playgroud)

问题:当我尝试保存json对象如{"name":"The Prince","genre":{"name":"History"}} DRF尝试验证流派对象的唯一约束以及"History" exists抛出一个例外,因为一个名为"History"的类型必须是唯一的,这是真的,但我只是试图关联对象而不是一起创建.

非常感谢!!

python django rest django-serializer django-rest-framework

11
推荐指数
1
解决办法
4303
查看次数