Python 如何使用django rest框架形成create方法将数据保存到数据库
我正在尝试使用Django中的序列化程序使用drf将Python 如何使用django rest框架形成create方法将数据保存到数据库,python,json,django,serialization,django-rest-framework,Python,Json,Django,Serialization,Django Rest Framework,我正在尝试使用Django中的序列化程序使用drf将JSON文件中的数据反序列化保存到数据库中,以下是我的模型: from django.db import models class elements(models.Model): id=models.CharField(primary_key=True,max_length=100) slug=models.CharField(max_length=100) name=models.C
JSON
文件中的数据反序列化保存到数据库中,以下是我的模型:
from django.db import models
class elements(models.Model):
id=models.CharField(primary_key=True,max_length=100)
slug=models.CharField(max_length=100)
name=models.CharField(max_length=100)
courseType=models.CharField(max_length=100)
def __str__(self):
return "%s %s %s %s" % (self.id, self.slug,self.name, self.courseType)
class types(models.Model):
elements=models.ForeignKey(elements, on_delete=models.CASCADE)
序列化程序文件如下所示:
from rest_framework import serializers
from serial.models import elements,types
class elementserializer(serializers.ModelSerializer):
class Meta:
model = elements
field=('id','name','slug','courseType')
class courseserial(serializers.ModelSerializer):
elements=elementserializer(many=True)
class Meta:
model = types
field=('elements')
def create(self, validated_data):
elements_data = validated_data.pop('elements')
types = types.objects.create(**validated_data)
for elements_data in elements_data:
elements.objects.create(types=types, **elements_data)
return types
即使在我尝试使用文档时,我使用的create方法也会不断出错。有人能告诉我一种更好的方法来编写create方法,以便使用序列化程序将数据保存到数据库中。我使用的创建方法如下所示:
from rest_framework import serializers
from serial.models import elements,types
class elementserializer(serializers.ModelSerializer):
class Meta:
model = elements
field=('id','name','slug','courseType')
class courseserial(serializers.ModelSerializer):
elements=elementserializer(many=True)
class Meta:
model = types
field=('elements')
def create(self, validated_data):
elements_data = validated_data.pop('elements')
types = types.objects.create(**validated_data)
for elements_data in elements_data:
elements.objects.create(types=types, **elements_data)
return types