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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010377372/article/details/80354477

重要是的将需要显示的字段重新声明并且添加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


猜你喜欢

转载自blog.csdn.net/u010377372/article/details/80354477