in Onchange Selbst enthält ein Dummy-Objekt, wenn Sie die Werte ändern nichts auf der Datenbank-Ebene passieren. (entgegengesetzt abhängig berechnet Rechenfeld)
aber der ursprüngliche Wert ist in self._origin übergeben.
@api.onchange('state')
def handed(self):
if self.state == "delivery_success":
# first try this if it work
self._origin.shoes.handed = True
# if not working then you need to fetch the recorod
# from the database first.
shoes = self.env['shoes.order'].search[('id', '=', self.shoes.id)]
shoes.handed = True
aber in OnChange-Ereignis Dadurch kann ein Problem Bildgebung verursachen, die der Benutzer seinen Geist auf Abbrechen, und klicken Sie geändert hat (Änderungen werden discared) aber shoes.handed ist al in der Datenbank verpflichtet bereit.
meine propsition für Sie ist, verwandten Bereich zu verwenden.
class pos_quotation(models.Model):
_inherit = "pos.quotation"
# i'm assuming that your m2o field is shoes
# don't make readonly because you need to save it's changed value
# when you hit save.
handed = fields.Boolean(related="shoes.handed")
@api.onchange('state')
def handed(self):
if self.state == "delivery_success":
self.handed = True
vergessen Sie nicht, dieses Feld auf die Formularansicht hinzuzufügen, und stellen Sie sicher, dass es so dass der Benutzer nicht den Wert manuell aktualisieren
<field name="handed" invisible="1"/>
hoffen, dass Sie auf die Idee kam unsichtbar ist.