1

參考場我使用Django的mongoenginemongoengine休息框架的驗證。在mongoengine串行

this article所示,在元類指定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休息框架的書面和在目前的版本沒有現場related_model_validations串行元類

那麼如何在mongoengine-rest-framework的當前版本中實現類似的結果呢?

回答

0

對不起,遲到的迴應,阿列克謝。

目前,如果你想PUTPOST評論JSON,你只是通過現有的業主和崗位作爲他們的id就像:

{ 
    post: 2, 
    user: [email protected], 
    text: "Contrary to the popular belief, Karl Marx and Friedrich Engels are not a couple, but four different people" 
} 

所以,如果你想更新Comment,在PostAuthor同時,恐怕這是不可能的。

GET要求就可以了,因爲你在你的例子做了獲取相關領域的嵌套的子JSONs非零depth參數序列化。