在django rest框架中创建子对象时,我正在尝试创建相关或父对象的列表。你知道吗
My Models are like this
class Model2(models.Model):
model1 = models.ForeignKey(Model1)
name = models.CharField(max_length=100)
display_name = models.CharField(max_length=100)
class Model3(models.Model):
model1 = models.ForeignKey(Model1)
kind = models.ForeignKey(Kind)
model2 = models.ForeignKey(Model2)
我的序列化程序类是:
class Model2Serializer(serializers.ModelSerializer):
class Meta:
model = Model2
class Model3Serializer(serializers.ModelSerializer):
model2 = Model2Serializer(many=True)
class Meta:
model = Model3
fields = ('model1', 'model2')
我的观点是:
class Model3View(generics.CreateAPIView):
serializer_class = Model3Serializer
queryset = Model3.objects.all()
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
# self.perform_create(serializer)
print serializer.data
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
我正在发送字段名model2中的对象列表。你知道吗
模型2字段输入请求.数据就像
[
{
"name":"abcde",
"display_name":"ghvhgvhg",
"model1":1
},
{
"name":"abcde",
"display_name":"ghvhgvhg",
"model1":1
}
]
但是当我打印的时候序列化程序.data检查后serializer.u是否有效()显示模型2:[]在serailizer.data文件. 你知道吗
为什么我的数据在执行数据验证时丢失?你知道吗
这是因为你的
Model3
只能有一个Model2
的实例,就是你的Model2
可以被许多Model3
的实例指向所以您的字段
model2 = Model2Serializer(many=True)
是错误的,因为Model3
实例永远不会有“许多Model2
实例”相关问题 更多 >
编程相关推荐