会简化一些,但希望通过以下示例可以解决问题:
我正在将mysql与sqlalchemy ORM一起使用。假设我有一个名为“ cellphoneTable”的表和另一个名为“ billTable”的表。手机和帐单之间存在1:1的关系。使用棉花糖,我可以进行以下工作:
class cellphoneSchema(Schema):
id = fields.Int(dump_only=True)
number = fields.Str()
bills = fields.nested('billSchema', many=True)
class billSchema(Schema):
<nothing special here: assume some Ints Floats Dates and Strings>
现在,当我想用账单转储我的手机数据时:
c1 = <get a cellphone record via session.query(cellphoneTable).get(c_id)...>
cs = cellphoneSchema()
return cs.dump(c1).data
如上所述,这有效。我得到了该c_id的手机数据和所有相关账单。
但是,例如,我只想获取最近12个月的帐单(或最近3个月或类似的限额)。
约束棉花糖嵌套查询以限制“行数”的最佳方法是什么,而不必自己编写查询,然后“合并”两个结果以进行jsonify并返回-请注意,我在在我的应用程序中到处都是很多表,因此希望避免代码过大并手工制作很多这样的表。
棉花糖支持吗?有任何想法吗?通过装饰器或????尽管我已阅读的大部分内容都针对单个对象(例如pre_load或post_load)进行操作。另外,我不想获取所有行,然后丢弃大部分不需要的内容,并且有很多我不需要的内容(请注意:我们正在谈论从可能的数百行中检索数十行)。