Python 如何在序列化程序中查找元组?

Python 如何在序列化程序中查找元组?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有这样的models.py GENDER =( ('MALE',1), ('FEMALE',2), ('OTHERS',3) ) class User(BaseModel, AbstractUser): type = models.IntegerField(choices=USER_TYPE,null=True) gender = models.IntegerField(choices=GENDER,null=True) 列出学生的Views

我有这样的models.py

GENDER =(
    ('MALE',1),
    ('FEMALE',2),
    ('OTHERS',3)
    )

class User(BaseModel, AbstractUser):
    type = models.IntegerField(choices=USER_TYPE,null=True)
    gender = models.IntegerField(choices=GENDER,null=True)
列出学生的Views.py如下所示

def list(self,request):

    for adm in StudentAdmission.objects.all():
        user = adm.student.user

        tmp['user']  = UserGetSerializer(user).data

        ud = UserDetail.objects.filter(user_id=user.id)
        if ud:
            tmp['user_detail'] = UserDetailSerializer(ud.first()).data
和serializer.py,如下所示

class UserBaseSerializer(serializers.Serializer):
    first_name = serializers.CharField(max_length=120,required=True)
    last_name = serializers.CharField(max_length=120,required=True)
    email = serializers.EmailField(required=True)


class UserSerializer(UserBaseSerializer):
    gender = serializers.IntegerField()
    type = serializers.IntegerField(default=3)


class UserGetSerializer(UserBaseSerializer):
    gender = serializers.SerializerMethodField()
    type = serializers.IntegerField(default=3)

    def get_gender(self, obj):

        #Here Confusion

        return {'id':obj.gender, 'value':value}
它以性别返回输出1,而不是返回男性。我想返回男性而不是1。为此,我创建了一个get_gender()函数从元组中查找并返回该对象Id的值。。 所以我的问题是如何编写get_gender()函数来查找性别元组

对不起,我希望你能理解我的问题

使用model的方法:

或者只指定is作为字段的源:

class UserGetSerializer(UserBaseSerializer):
    gender = serializers.CharField(source='get_gender_display')
请注意,
GENDER
元组的值错误。它应该是这样的
(实际值,人类可读)

GENDER =(
    (1, 'MALE'),
    (2, 'FEMALE'),
    (3, 'OTHERS')
)

这是获取显示值的正确方法。然而,在他的情况下,选择是不正确的。应该是另一种方式(1,“男性”)。否则,即使使用display方法,他也会得到1。所以你也可以在回答中提到这一点。
GENDER =(
    (1, 'MALE'),
    (2, 'FEMALE'),
    (3, 'OTHERS')
)