Как получить первичный ключ в строковом формате в django rest framework

В настоящее время я работаю над проектом django rest framework и требование к выводу ответа описано ниже.

Если у кого-нибудь есть идеи по этому поводу, это будет очень полезно для меня.

В настоящее время я получаю следующие результаты:

{
    "status": true,
    "message": "User Details",
    "Detail": {
        "id": 1,
        "phone": "9874563120",
        "first_name": "Crish",
        "birthdate": "1989-09-16",
        "age": 32,
        "email": "crish@gmail.com",

    }
}

Но я хочу получить результат следующего вида:

    {
    "status": true,
    "message": "User Details",
    "Detail": {
        "id": "1", #in string formate
        "phone": "9874563120",
        "first_name": "Crish",
        "birthdate": "1989-09-16",
        "age": "32", #in string formate
        "email": "crish@gmail.com",

    }
}

какое изменение я должен сделать, чтобы получить этот тип вывода!

Есть простое решение этой проблемы, вам просто нужно добавить несколько строк в класс сериализатора.

Предполагаю, что ваш serializers.py файл выглядит следующим образом :

serializers.py

class UserSerializer(serializers.ModelSerializer): #Assumed class name 

class Meta:
    model = User #Assumed model name 
    fields = ['id','phone','first_name','birthdate','age','email']

#you just need to add following representation function after your `Meta class`

def to_representation(self, instance):
    repr = super().to_representation(instance)
    repr['id'] = str(repr['id'])
    repr['age'] = str(repr['age'])

    return repr

это решит вашу проблему :)

Вернуться на верх