作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在发送一个 API post 请求,在请求正文中包含以下内容(转换为 JSON 字符串),以将其序列化为 BookCollection 文档,其中书籍作为嵌入式文档列表持久化:
{
'author': '<author_id>',
'books': [
{
'title': 'Grapes of Wrath',
'note': 'More to be ordered.',
'created': '2016-03-11T17:59:01.054Z'
}
]
}
def post(self, request, *args, **kwargs):
serializer = BookCollectionSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
class Book(EmbeddedDocument):
title = StringField(required=True, max_length=50)
note = StringField(required=False, max_length=2000)
created = DateTimeField(required=True,
default=datetime.datetime.now())
class BookCollection(Document):
author = ReferenceField(Author, required=True)
books = EmbeddedDocumentListField(Book, required=False)
class BookSerializer(EmbeddedDocumentSerializer):
class Meta:
model = Book
depth = 2
class BookCollectionSerializer(DocumentSerializer):
author = ReferenceField(Author)
books = BookSerializer(Book, many=True)
class Meta:
model = BookCollection
depth = 2
def create(self, validated_data):
books = validated_data.pop('books')
book_collection = BookCollection.objects.create(**validated_data)
book_collection.books = []
for book in books:
book_collection.books.append(book)
book_collection.save()
return book_collection
最佳答案
我发现了问题——这是一个愚蠢的错误。我没有将 API 发布请求内容类型设置为 application/json。一旦我设置了它,它就完美无缺地工作了。
关于django - 如何在 Django REST Framework Mongoengine 中序列化 EmbeddedDocumentListField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073228/
我是一名优秀的程序员,十分优秀!