Similar to this I have another issue, in this case the structure looks as follows:
In party.party:
records = fields.One2Many(‘record’, ‘party’, ‘Records’, readonly=True)
However, in record model, party is defined as a function field with searcher (but no setter). Something like:
party = fields.Function(fields.Many2One(‘party.party’, ‘Party’), ‘get_party’, searcher=‘search_party’)
In this case, when the user changes any record of the o2m field, the error it raises is that the party field of record has no setter.
I find it strange that Tryton tries to call the setter on party field.
I have the impression that it may be due to the way sao is sending the data to trytond. This is the log on the server:
<class ‘trytond.pool.party.party’>.write(*([18387], {‘records’: [[‘add’, [46954]], [‘write’, [46954], {‘another_field’: 47034}]]}, …)
It seems that sao is sending an “add” operation even though the record was actually not added, only an existing record was modified, so only write should be sent, isn’t it?
Is this a bug?