我有:
class Thing(BaseModel):
#doesn't matter
class OtherThing(BaseModel):
thing = models.OneToOneField( Thing,
related_name = 'other_thing',
null = True,
blank = True,
)
现在我的django后端不允许我在有效负载中将other_thing设置为null时保持一个事物模型。这在概念上对我没有任何意义,如果我永远不能保存1-2-1的第一部分,我怎么能保存第二部分?
更具体地说,向api / thing发布请求返回400; {“other_thing”:[“此字段可能不为空。”]}
串行器:
class ThingSerializer(serializers.ModelSerializer):
class Meta:
model = Thing
fields = ('id', 'name', 'other_thing')
class OtherThingSerializer(serializers.ModelSerializer):
class Meta:
model = OtherThing
fields = ('id', 'name', 'thing')
答案 0 :(得分:1)
所以我想通了,我需要设置' other_thing'像read_only_field一样;
class ThingSerializer(serializers.ModelSerializer):
class Meta:
model = Thing
fields = ('id', 'name', 'other_thing')
read_only_field = ('other_thing',)
这使得Django在POST进入时不会在有效负载中期望它,但是在请求Thing时它仍然会将其发送出去。