2

Flask と MongoEngine を使用してきましたが、ReferenceField が原因でオブジェクトを保存しようとすると問題が発生します。

これは私のモデルがどのように見えるかです:

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')

これは、Post オブジェクトを作成する方法です。

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

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

私も試しました:

user = current_user._get_current_object()

しかし、私は取得し続けます:

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

何が起こっているかについてのアイデアはありますか?

ありがとう!

4

2 に答える 2

0

使用している db モジュールに問題があると思います。それは本当にmongoengineモジュールですか?あなたのコードはうまく動作するので、私が使用する場合

import mongoengine as db
于 2015-09-23T18:22:01.257 に答える