__init__() got an unexpected keyword argument 'status' error in django

Viewed 1980

I'm using django-rest-framework. I can't understand why the error occurred. I am trying to save the queryset json. But it doesn't work. My queryset json is as below. I'm sorry for the misalignment.

{
 "data": [
 {
    "code": "123",
    "name": "hi",
    "cnt": "3",
    "construction":"123",
    "listedDate":"20171112",
    "lastPrice":"123",
    "state":"123",
    "token":"ff35885ab6c63290ccdf60b80a9b37769e287ec5"
},
{
    "code": "123",
    "name": "hi2",
    "cnt": "3",
    "construction":"123",
    "listedDate":"20171112",
    "lastPrice":"123",
    "state":"123",
    "token":"ff35885ab6c63290ccdf60b80a9b37769e287ec5"
},
{
    "code": "123",
    "name": "hi3",
    "cnt": "3",
    "construction":"123",
    "listedDate":"20171112",
    "lastPrice":"123",
    "state":"123",
    "token":"ff35885ab6c63290ccdf60b80a9b37769e287ec5"
}
]
}

My Model

class Stock(models.Model):
    code = models.CharField(max_length=20)
    name = models.CharField(max_length=30)
    cnt = models.BigIntegerField()
    construction = models.CharField(max_length=20)
    listedDate = models.DateTimeField()
    lastPrice = models.CharField(max_length=10)
    state = models.CharField(max_length=20)
    token = models.CharField(max_length=50,validators=[validate_token])

    class Meta:
        db_table = 'stock'

    def __str__(self):
        return self.name

This is my Viewset

from requests import Response
from rest_framework import viewsets, status
from . import models, serializers


class StockViewset(viewsets.ModelViewSet):
    queryset = models.Stock.objects.all()
    serializer_class = serializers.StockSerializer

    def create(self, request, *args, **kwargs):
        stock_data = request.data.get("data")
        serializer = self.get_serializer(data=stock_data,many=True)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        print(serializer.data)
        return Response(serializer.data,status=status.HTTP_201_CREATED,headers=headers)

    def perform_create(self, serializer):
        serializer.save()

and my serializers

from rest_framework import serializers
from .models import Stock


class StockSerializer(serializers.ModelSerializer):

    listedDate = serializers.DateTimeField(format="%Y-%m-%d",input_formats=['%Y%m%d'])

    class Meta:
        model = Stock
        fields = '__all__'

Even if there is no solution for the above, I would like you to tell me how to save json queryset.

1 Answers

You are importing wrong Response class from wrong module so instead of

from requests import Response

you should use

from rest_framework.response import Response
Related