此问题是此链接中的其他问题的延续(Django Rest Framework how to save a model with Related Field based on ID)
当我使用PrimaryKeyRelatedField()在POST请求中使用id存储数据时,我的情况得到了解决。这反过来又造成了另一个问题。我使用相同的API的GET选项列出相关(外键引用)模型中的所有列,在使用PrimaryKeyRelatedField()后,其他列消失,ID仅显示。需要帮助。
更明确的是在POST调用期间需要引用表的ID列,并且在GET调用期间需要模型/表的其他列。
PS:我使用过serializers.ModelSerializer方法
答案 0 :(得分:2)
您可以使用序列化程序的to_representation
方法仅覆盖输出数据的相关对象字段。例如,您可以使用sested serializer显示相关的对象详细信息,如下所示:
class RelatedSerializer(serializers.ModelSerializer):
class Meta:
Model = RelatedModel
fields = ('id', 'field1', 'field2')
class YourSerializer(serializers.ModelSerializer):
related_field = serializer.PrimaryKeyRelatedField(queryset=RelatedModel.objects.all())
class Meta:
Model = SomeModel
fields = ('id', 'related_field')
def to_representation(self, instance):
self.fields['related_field'] = RelatedSerializer()
return super(YourSerializer, self).to_representation(instance)