Skip to content Skip to sidebar Skip to footer

How To Use Django Rest Serializers?

So, after reading the Django REST Framework document, and a bunch of tutorials, I am still having trouble understanding how to use the Django serializers to convert incoming POST (

Solution 1:

As you do not want to use a model, you have to create the serializer from scratch. Something like this should maybe work:

classMySerializer(serializers.Serializer):
    name = serializers.CharField(max_length = 100)
    adress = serializers.CharField(max_length = 100)

And then you could use it in a request like this:

def bar(self, request, uuid=None):
    data = JSONParser().parse(request)
    serializer = MySerializer(data = data)
    return Response(status=status.HTTP_201_CREATED)

Note however, as you have not created an Django model, you will not be able to save the serialized data (and thus nothing will be saved in the database)

Solution 2:

Basically, you pass in the JSON data to the serializer, and then access the data field which will return an ordered dictionary.

defbar(self, request, uuid=None):
    serializer = MySampleSerializer(data=request.data)
    if serializer.is_valid(raise_exception=True):
        my_object = serializer.data # Grab the dict of values

To define a serializer:

classMySampleSerializer(serializers.Serializer):
    name = serializers.CharField(max_length=30)
    address = serializers.CharField(max_length=30)

Solution 3:

You do not have to use the ModelSerializer:

from rest_framework import serializers

classCommentSerializer(serializers.Serializer):
    email = serializers.EmailField()
    content = serializers.CharField(max_length=200)
    created = serializers.DateTimeField()

and access:

serializer = CommentSerializer(data=data)
serializer.is_valid()
# True
serializer.validated_data

by the way, all the above is from the DRF website

Post a Comment for "How To Use Django Rest Serializers?"