Как отобразить поле uuid моего сериализатора в виде строки в запросе get с помощью django restframework

Вот мой сериализатор

class AgenceSerializer(serializers.Serializer):
    uuid = serializers.UUIDField(format='hex',allow_null=True,required=False) <-------
    p1 = serializers.CharField(max_length=50,required=True)
    p2 = serializers.CharField(max_length=50,required=True)

views.py

@api_view(["POST"])
def details_agence(request):
    if request.method == "POST":
        serializer = AgenceUUIDSerializer(data=request.data)
        if serializer.is_valid():
            agence_repr = serializer.agence_details(data=request.data)
            serializer = AgenceSerializer(agence_repr)
            print(serializer)
            return Response(serializer.data,status=status.HTTP_200_OK) <---------
 ...

Печать на сериализаторе дает следующее:

AgenceSerializer({'uuid': 'A75DF036-6C16-4311-9825-22B1295D8A26', 'p1': 'Ozangue', ...}):
    uuid = UUIDField(allow_null=True, format='hex', required=False)
    ...

Но когда я отображаю данные, в ответе поле uuid всегда равно null
. Как решить эту проблему?enter image description here

У меня была такая же проблема, и это мне помогло. uuid = serializers.CharField() # Change UUIDField to CharField

просто добавьте это в ваш сериализатор

class AgenceSerializer(serializers.Serializer): uuid = serializers.UUIDField(default=uuid.uuid4, format='hex',allow_null=True,required=False) p1 = serializers.CharField(max_length=50,required=True) p2 = serializers.CharField(max_length=50,required=True)

Обратите внимание на поле uuid.

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