我的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将其排除在查询整个数据库之外?