Rest Framework Seralizer всегда возвращает false из is_valid - PullRequest
0 голосов
/ 01 июня 2019

Я создаю базу данных инвентаризации автомобилей и пытаюсь заполнить ее данными json, предоставленными API.Что не так с моим seralizer?

Это для Windows, баз данных Django2 и Sqlite и Python3.Пожалуйста, помогите мне получить желаемый результат!Спасибо

seralizer.py

from rest_framework import serializers
from .models import SavedInventory

    class EmbedSerializer(serializers.ModelSerializer):
        class Meta:
            model = SavedInventory
            fields = '__all__'

views.py

    vin = form.cleaned_data['vin']
                links={"X-RapidAPI-Host":settings.VINDECODERHOST, "X-RapidAPI-Key": settings.VINDECODERKEY}
                r = requests.get("https://vindecoder.p.rapidapi.com/decode_vin?vin="+ vin + "&key=" + settings.VINDECODERKEY)
                json = r.json()
                serializer = EmbedSerializer(data=json)
                if serializer.is_valid():
                    saved = serializer.save()
                    return render(request, 'saved.html', {'embed': embed})
                else:
                    return HttpResponse('<h1>ERROR Seralizer</h1>')

Sqlite models.py

from django.db import models

# Create your models here.
class SavedInventory(models.Model):
    vin = models.CharField(max_length=15)
    year = models.CharField(max_length=4)
    make = models.CharField(max_length=20)
    model = models.CharField(max_length=20)
    trim_level = models.CharField(max_length=20)
    engine = models.CharField(max_length=50)
    style = models.CharField(max_length=50)
    steering_type = models.CharField(max_length=15)
    anti_brake_system = models.CharField(max_length=80)
    tank_size = models.CharField(max_length=50)
    overall_height = models.CharField(max_length=50)
    overall_length = models.CharField(max_length=50)
    overall_width = models.CharField(max_length=50)
    highway_mileage = models.CharField(max_length=30)
    city_mileage = models.CharField(max_length=30)

JSON Ответ от API


   "success":true,
   "specification":{  
      "vin":"JNKCA31A61T027494",
      "year":"2001",
      "make":"Infiniti",
      "model":"I30",
      "trim_level":"Touring",
      "engine":"3.0L V6 DOHC 24V",
      "style":"Sedan (4-Door)",
      "made_in":"Japan",
      "steering_type":"R&P",
      "anti_brake_system":"4-Wheel ABS",
      "tank_size":null,
      "overall_height":"56.50 inches",
      "overall_length":"193.70 inches",
      "overall_width":"70.20 inches",
      "standard_seating":"5",
      "optional_seating":null,
      "highway_mileage":"28 miles/gallon",
      "city_mileage":"20 miles/gallon",
      "fuel_type":"Gasoline",
      "drive_type":"FWD",
      "transmission":"Automatic",
      "features":[  
         "Air Conditioning",
         "Cruise Control",
         "Power Seat (Driver)",
         "Remote Trunk Release",
         "Anti-theft System",
         "Front Airbags (Driver)",
         "Tachometer"
      ]
   },
   "vin":"JNKCA31A61T027494"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...