我将django与mongoengine和mongoengine-rest-framework一起使用。
如本文所示,在Serializer的Meta 类中指定related_model_validations字段
class Comment(Document):
post = ReferenceField(Post)
owner = ReferenceField(User)
text = StringField(max_length=140)
isApproved = BooleanField(default=False)
from rest_framework_mongoengine import mongoengine_serializer
class CommentSerializer(MongoEngineModelSerializer):
class Meta:
model = Comment
depth = 1
related_model_validations = {'owner': User, 'post': Post}
exclude = ('isApproved',)
如果ReferenceField引用的文档丢失,可以帮助实现以下结果:
{
"owner":["User with PK ... does not exist."]
}
因此,不是引发验证异常,而是修改 json。
但是,这篇文章是为旧版本的mongoengine-rest-framework编写的,在当前版本中,Serializer Meta class中没有字段related_model_validations。
那么如何在当前版本的 mongoengine-rest-framework 中达到类似的效果呢?