首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用flask-mongoengine和flask-marshmallow时出现不可混入类型的dict错误

使用flask-mongoengine和flask-marshmallow时出现不可混入类型的dict错误
EN

Stack Overflow用户
提问于 2016-01-28 23:11:50
回答 2查看 415关注 0票数 2

我正在使用flask、flask-mongoengine和Flask-marshmallow构建API。当我尝试使用marshmallow返回我的数据库数据时,我得到了'unhashable type dict‘错误。

这是我的模型:

代码语言:javascript
复制
from app import db

class Post(db.Document):
    title = db.StringField(max_length=128)
    body = db.StringField()

这是我的观点:

代码语言:javascript
复制
from flask import jsonify
from app import ma
from app.models import Post

class PostSchema(ma.Schema):
    class Meta:
        fields = ('title', 'body')

post_schema = PostSchema()
posts_schema = PostSchema(many=True)

@mod_post.route('/post/')
def post():
    all_post = Post.objects
    print(all_post)
    result = posts_schema.dump(all_post)
    return jsonify(result)
...

我在这里遵循棉花糖教程:http://flask-marshmallow.readthedocs.org/en/latest/

但是,不幸的是,错误发生了。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2016-12-01 09:18:17

详细的错误消息会有所帮助。从我立即看到的是,您获得了Schema.dump的结果并将其传递给jsonify(),但result实际上是一个转储数据和错误的元组。你应该从这样做开始:

代码语言:javascript
复制
result, errors = posts_schema.dump(all_posts)
if errors:
    return jsonify({'error': errors.messages})

return jsonify(result)

然后,您可以添加代码来说明转储错误。

票数 0
EN

Stack Overflow用户

发布于 2017-10-24 17:14:34

只需更改一个返回值:return posts_schema.dump(all_post, many=False)[0], 201

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35065128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档