From https://codereview.tryton.org/314201002/diff/312831002/trytond/model/modelstorage.py#oldcode1485