我对Flask RESTless有点问题,也许你可以帮助我:)。
我的SQL(和SQLAlchemy)中有一些表是N..N关系的结果,它们的主键是两列的总和。例如
Table 1 Key / Table 2 Key / Some data
0 0 Bla
0 1 Blabla
1 0 Morebla
1 1 Silenceisgolden
如果我使用带有ID的GET动词,例0,RESTless只使用“表1键”并返回0,0,Bla。
我可以使用查询语言(?q =)并获得0,0和0,1。
问题是:如何只用PATCH或DELETE动词选择一个?我只能删除或修补0,0
希望这个问题很清楚:)
非常感谢!
答案 0 :(得分:1)
我最近遇到过类似的问题。问题是烧瓶 - 不安全喜欢假设主键是非复合物。
然而,有完美的工作。首先,您需要为端点启用多DELETE和多PATCH:
e.originalEvent.ctrlKey
此更改允许您使用flask-restless'查询参数删除或修补表中的项目,您可以使用该参数来过滤您要删除的确切行。
下面是一个python脚本,它使用请求库删除上面复合表中的第二行(并且只有第二行):
manager.create_api(
Your_Composite_Model, # flask-sqlalchemy model class
methods=['GET', 'POST', 'DELETE', 'PATCH'],
allow_delete_many=True,
allow_patch_many=True)
〜
输出应为: {u'num_deleted':1}