在Django REST Framework中能否让两个字段使用相同值?
实现方法
当然可以实现,以下是两种常用的解决方式:
方式一:使用SerializerMethodField声明字段
在序列化器中显式添加id字段,通过自定义方法返回research_id的值:from rest_framework import serializers from .models import Researches class ResearchesSerializer(serializers.ModelSerializer): id = serializers.SerializerMethodField() class Meta: model = Researches fields = ['research_id', 'id'] def get_id(self, obj): return obj.research_id方式二:重写to_representation方法
利用序列化器的to_representation方法,在原有序列化数据基础上添加id字段并赋值:from rest_framework import serializers from .models import Researches class ResearchesSerializer(serializers.ModelSerializer): class Meta: model = Researches fields = ['research_id'] def to_representation(self, instance): data = super().to_representation(instance) data['id'] = instance.research_id return data
两种方式都能让API返回的结果中,id和research_id字段保持相同的值,你可以根据自己的编码习惯选择其中一种。
内容的提问来源于stack exchange,提问作者null92
相关产品推荐
相关产品推荐

