Python 烧瓶:Peewee model_to_dict助手不工作

Python 烧瓶:Peewee model_to_dict助手不工作,python,flask,peewee,Python,Flask,Peewee,我正在为一个大学项目开发一个小应用程序,我需要对查询结果进行json编码以将其传递给js库,我在别处读到过,我可以使用model_to_dict来实现这一点,但我遇到了这个错误 AttributeError:“SelectQuery”对象没有属性“\u meta” 我不知道为什么或者怎么做,有人知道如何解决这个问题吗 我正在使用Python2.7和peewee的最新版本 @app.route('/ormt') def orm(): doitch = Player.select().joi

我正在为一个大学项目开发一个小应用程序,我需要对查询结果进行json编码以将其传递给js库,我在别处读到过,我可以使用model_to_dict来实现这一点,但我遇到了这个错误

AttributeError:“SelectQuery”对象没有属性“\u meta”

我不知道为什么或者怎么做,有人知道如何解决这个问题吗

我正在使用Python2.7和peewee的最新版本

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    return model_to_dict(doitch)

这是因为
doitch
是一个
SelectQuery
实例,它不是模型,您必须调用

也可以使用该方法以dict的形式获取数据。这样就省去了创建整个模型的工作

from flask import jsonify

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    return jsonify(doitch.dicts().get())
编辑

正如@lord63所指出的,您不能简单地返回dict,它必须是一个Flask响应,所以将其转换为jsonify

编辑2

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    # another query
    sth = Something.select()
    return jsonify({
        'doitch': doitch.dicts().get(),
        'something': sth_query.dicts().get()
    })

好的,我按照你说的做了,尝试了两种解决方案,最初的问题已经解决了,但是现在我得到了一个TypeError:“dict”对象不是可调用的错误;你知道吗?XD@Vinz29问题是您返回dict,但在这种情况下,flask将其视为wsgi应用程序,并尝试将其转换为响应。要解决这个问题,您可以尝试
jsonify(model_To_dict(doitch.get())
。很好,现在一切都正常了,谢谢你们:D最后一件事,如果我想要的结果不止一个呢?我试过执行,但不起作用
@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    # another query
    sth = Something.select()
    return jsonify({
        'doitch': doitch.dicts().get(),
        'something': sth_query.dicts().get()
    })