在多对多关系中有两个模型,我希望在一个查询中获得相关模型中的所有列值。但不能用炼金术得到。
但是我可以使用phpmyadmin中的sql查询获得所需的数据。
这是查询
选择ply_positions.plypositionid、ply_positions.plypositionname、ply_positions.createdat、ply_positions.updatedat,product\u categories.productcatname from ply\u positions join product\u category\u ply\u position as product\u category\u ply\u positions\u 1 on ply\u positions.plypositionid=product\u category\u ply\u position\u 1.plypositionid join product\u categories on product\u categories.productcatid=product\u category\u ply\u position\u 1.productcatid
以下是gist上的模型和资源代码:https://gist.github.com/himadriganguly/c0c9d7e247c286e497998dbd33ce7e84
输出:
[{“product\u category”:[1],“plypositionid”:2,“updatedat”:null,“product\u category\u associations”:[{“productcatid”:1,“plypositionid”:2}],“createdat”:1234,“plypositionname”:“flute”},{“product\u category”:[1],“plypositionid”:1,“updatedat”:null,“product\u category\u associations”:[{“productcatid”:1,“plypositionid”:1}],“createdat”:123,“plypositionname”:“top”}]
获取关联表的输出,但不获取来自产品类别表的列值。
另外,在建立关系时,我们会使用lazy两次,但我不清楚为什么要这样做。
ply\u position=db.relationship('plypositionmodel',secondary=“product\u category\u ply\u position”,lazy=true,backref=db.backref('product\u category',lazy=true))
提前谢谢大家。
1条答案
按热度按时间h7wcgrx31#
我想我已经弄明白了这不是sqlalchemy的问题,而是关于如何序列化数据的问题。在这种情况下,我用的是瓶装棉花糖。
所以在plypositionresource.py中,我必须稍微更改模式
产品分类方案
位置示意图
然后在get函数中可以执行以下操作
希望这能帮助别人。
如果有其他解决问题的方法,请随时发表意见。