Django REST Framework:在唯一字段

时间:2018-01-02 11:31:18

标签: django django-rest-framework

我的models.py中有两个模型。它们与OneToOne关系有关。这是结构:

models.py

class A (models.Model):
   foo = models.CharField()

class B (models.Model): 
    title = models.CharField(unique=True)
    some = models.OneToOneField(A, on_delete=models.CASCADE, 
                                         related_name="some")

serializers.py

class BSerializer(serializers.ModelSerializer):
    class Meta:
        model = B
        fields = "__all__"

class ASerializer(serializers.ModelSerializer):
    some = BSerializer()
    class Meta:
        model = A
        fields = "__all__"

    def update(self, instance, validated_data):
        some_data = validated_data.pop('some')
        instance.some.title = some_data.get('title', 
                                             instance.some.title)
        instance.foo = validated_data.get('foo', instance.foo)
        a = instance.some
        instance.save()
        a.save()
        return instance

在更新调用中,标题将保持不变,出现数据库验证错误:the title field already exists。如何告诉django将其排除在查询整个数据库之外?

0 个答案:

没有答案