Ok I was able to find a solution to my problem by making use of Djangos model_to_dict
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.renderers import JSONRenderer
from rest_framework.parsers import JSONParser
from API.models import Payload
from API.serializers import PayloadSerializer
from API.services import PayloadService
from django.forms.models import model_to_dict
class JSONResponse(HttpResponse):
"""
An HttpResponse that renders its content into JSON.
"""
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
@csrf_exempt
def payload_list(request):
if request.method == 'POST':
model = Payload(code="754d", body="Hello World")
result = model_to_dict(model, fields=[], exclude=[])
serializer = PayloadSerializer(data=result)
if serializer.is_valid():
serializer.save()
return JSONResponse(serializer.data, status=201)
return JSONResponse(serializer.errors, status=400)