棉花糖限制嵌套模式中的记录

时间:2018-08-25 06:08:44

标签: python-3.x sqlalchemy marshmallow

会简化一些,但希望通过以下示例可以解决问题:

我正在将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)进行操作。另外,我不想获取所有行,然后丢弃大部分不需要的内容,并且有很多我不需要的内容(请注意:我们正在谈论从可能的数百行中检索数十行)。

0 个答案:

没有答案