Django rest框架序列化程序:同时创建包含外部对象的对象
背景:我有一个文章模型存储一些文章,每篇文章可以有多个图像。我需要设计一个api来创建一篇文章和相应的图片,如果必要的话。但我不知道如何使图像也可以同时创建 models.pyDjango rest框架序列化程序:同时创建包含外部对象的对象,django,django-rest-framework,django-serializer,Django,Django Rest Framework,Django Serializer,背景:我有一个文章模型存储一些文章,每篇文章可以有多个图像。我需要设计一个api来创建一篇文章和相应的图片,如果必要的话。但我不知道如何使图像也可以同时创建 models.py class Article(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=50) content = models.CharField(max_length=25
class Article(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=50)
content = models.CharField(max_length=255)
def __unicode__(self):
return self.title
class ArticleImage(models.Model):
id = models.AutoField(primary_key=True)
image = models.ImageField(upload_to=get_file_path, blank=True, null=True)
article = models.ForeignKey(Article)
序列化程序.py
class ArticleImageSerializer(serializers.ModelSerializer):
class Meta:
model = ArticleImage
class ArticleSerializer(serializers.ModelSerializer):
#images = ???
class Meta:
model = Article
api.py
class ArticleView(APIView):
def post(self, request, format=None):
try:
serializer = ArticleSerializer(request.data)
if serializer.is_valid():
serializer.save()
return Response({'success': True})
else:
return Response({'success': False})
except:
return Response({'success': False})
请求JSON
{
"title":"Sample Title",
"content":"Sample Content",
"images":[
"paul.jpg",
"ada.jpg"
]
}
感谢您的帮助。假设您使用的是DRF v3,您可以在官方文档的部分“可写嵌套表示法”下找到问题的答案,该部分位于“序列化程序”
如果您需要更多帮助,请告诉我。json/post中是否包含jpg图像数据?否则图像将从何而来?是的,包括图像。请求json是供任何人参考的数据结构示例,实际上在调用api时,内容类型应该是“multipart/form data”。谢谢你的回答。有人帮你回答这个问题吗?非常感谢。