Django-rest-framework CharField/ChoidField 显示 display_name(choices中的human readable)

重要是的将需要显示的字段重新声明并且添加source参数,代码如下

# models.py
class User(AbstractUser):
    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )

    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

# serializers.py 
class UserSerializer(serializers.ModelSerializer):
    gender = serializers.CharField(source='get_gender_display') #####!!!!!!!!!!!关键代码
    # 要想显示为 display_name 需要重新声明 gender字段,并且添加source参数 ,参数中的 get_gender_display依据你的字段而改变
    # 如你的字段是 haha,那么 source参数的值就是 get_haha_display

    class Meta:
        model = User    

声明属性并且添加source参数之后将序列化为

Male 或者 Female

不声明属性或者未添加source参数都将序列化为

M 或者 F


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值