InvalidDocument:无法对对象进行编码:< User:User object> ReferenceField与MongoEngine [英] InvalidDocument: Cannot encode object: <User: User object> ReferenceField with MongoEngine

查看:248
本文介绍了InvalidDocument:无法对对象进行编码:< User:User object> ReferenceField与MongoEngine的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



这就是我的模型看起来的样子(UserMixin,db.Document):
first_name = db.StringField(max_length = 255,

pre $必须= True)
last_name = db.StringField(max_length = 255,required = True)
email = db.StringField(max_length = 255)
$ b $ class Post(db.Document ):
description = db.StringField(max_length = 255,required = True)
inserted_at = db.DateTimeField(default = datetime.datetime.now,required = True)
tags = db。 ListField(db.EmbeddedDocumentField('Tag'))
comments = db.ListField(db.EmbeddedDocumentField('Comment'))
user = db.ReferenceField('User')
<

$ b $ p $这是我如何创建Post对象:

$ pre $ user = User.objects.filter(id = current_user.id).first()

post = Post(
description = request.json [description],
user = user



<我也试过:

pre $ user = current_user._get_current_object()

但是我不断收到:

  InvalidDocument:无法编码object:< User:User object> 

有什么想法?

Thanks!

解决方案

我认为你正在使用的db模块存在一些问题。它真的是mongoengine模块吗?因为你的代码工作正常,所以如果我使用

$ $ p $ $ $ $ $ $ $导入mongoengine作为db


I've been working with Flask and MongoEngine, and I am having trouble when trying to save an object because of a ReferenceField.

This is what my model looks like:

class User(UserMixin, db.Document):
    first_name = db.StringField(max_length=255, required=True)
    last_name = db.StringField(max_length=255, required=True)
    email = db.StringField(max_length=255)

class Post(db.Document):
    description = db.StringField(max_length=255, required=True)
    inserted_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    tags = db.ListField(db.EmbeddedDocumentField('Tag'))
    comments = db.ListField(db.EmbeddedDocumentField('Comment'))
    user = db.ReferenceField('User')

This is how I create the Post object:

    user = User.objects.filter(id=current_user.id).first()

    post = Post(
        description = request.json["description"],
        user = user
    )

I have also tried:

user = current_user._get_current_object()

But I keep getting:

InvalidDocument: Cannot encode object: <User: User object>

Any ideas on what's going on?

Thanks!

解决方案

I think there is some issue with the db module you are using. Is it really the mongoengine module. Because your code works fine, if I use

import mongoengine as db

这篇关于InvalidDocument:无法对对象进行编码:&lt; User:User object&gt; ReferenceField与MongoEngine的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆