django-json-api/django-rest-framework-json-api

raise NotImplementedError('`create()` must be implemented.') NotImplementedError: `create()` must be implemented.

sunnythakr opened this issue · 0 comments

I am Django REST API beginner research lot and trying various ways to solve but it not solve, please anyone can help me in this

here is my code

Create your models here.

from django.db import models
class Student(models.Model):
    name = models.CharField(max_length=111)
    roll = models.IntegerField()
    city = models.CharField(max_length=111)

from django.shortcuts import render

# Create your views here.

import io
from rest_framework.parsers import JSONParser
from . serializers import StudentSerializer
from rest_framework.renderers import JSONRenderer
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def student_create(request):
    if request.method =="POST":
        json_data = request.body
        stream = io.BytesIO(json_data)
        pythondata = JSONParser().parse(stream)
        serializer = StudentSerializer(data=pythondata)
        if serializer.is_valid():
            serializer.save()
            res = {'msg':'data created'}
            json_data = JSONRenderer().render(res)
            return HttpResponse(json_data, content_type='application/json')

        json_data = JSONRenderer().render(serializer.errors)
        return HttpResponse(json_data, content_type='application/json')
serializers.py

from rest_framework import serializers
from .models import Student

class StudentSerializer(serializers.Serializer):
    name = serializers.CharField(max_length=111)
    roll = serializers.IntegerField()
    city = serializers.CharField(max_length=722)
 

def create(self,validated_data):
    return Student.objects.create(**validated_data)

urls.py

from django.contrib import admin
from django.urls import path
from apiApp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('stucreate/', views.student_create),
]

API

import requests
import json 
URL = "http://127.0.0.1:8000/stucreate/"

data = {
    'name':'sonam',
    'roll':101,
    'city':"Ranchi",
}

json_data = json.dumps(data)
r = requests.post(url = URL, data = json_data)
data = r.json()
print(data)