You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:40:35