首页 > 解决方案 > __init__() 在 django 中出现意外的关键字参数“状态”错误

问题描述

我正在使用 django-rest-framework。我不明白为什么会发生错误。我正在尝试保存查询集 json。但它不起作用。我的查询集 json 如下。我很抱歉错位。

{
 "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"
}
]
}

我的模特

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

这是我的视图集

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()

和我的序列化器

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__'

即使上面没有解决方案,我也希望您告诉我如何保存 json 查询集。

标签: pythondjangodjango-rest-framework

解决方案


您正在从错误的模块导入错误的响应类,而不是

from requests import Response

你应该使用

from rest_framework.response import Response

推荐阅读