第二十章 工具
drop_view_if_exists
groupby
groupby位于工具类tools.misc中, 与itertools中的groupby不同的是,odoo.tools中的groupby会自动将结果集合并,而不是只返回一个可迭代的对象。
我们来看两者的区别:
data = groupby(orders,key=lambda o:o.partner_id)
print('-----------------------')
print(data)
对于使用了odoo.tools.groupby的结果:
dict_items([(res.partner(10,), [sale.order(19,), sale.order(18,)])])
而使用了itertools.groupby的结果:
<itertools.groupby object at 0x7f9c8afc2ea0>
虽然两者在使用方式上相同,但明显odoo的显示方式更为友好。
qrcode
在odoo中生成二维码:
import qrcode
import io
data = io.BytesIO()
qrcode.make(url.encode(), box_size=4).save(data, optimise=True, format='PNG')
w.qrcode = base64.b64encode(data.getvalue()).decode()