Odoo 8 - Berechnungsfeld mit "store = True" kann nicht in der Datenbank gespeichert werden
Ich benutzeOdoo 8
und ich habe ein Problem mitcompute field
mit Typ istMany2One
.
Hier habe ich @ deklariedepartment_id
:
department_id = fields.Text(
string="Department", store=True,
comodel_name="hr.department",
compute="_get_department_id"
)
Und Funktion dieses Rechenfeldes:
@api.depends('employee_id')
def _get_department_id(self):
if self.employee_id.department_id:
self.department_id = self.employee_id.department_id.name
Es scheint gerade zu funktionieren, aber es ist nicht. In der Ansicht kann ich den Wert von @ sehdepartment_id
. Aber in der Datenbank hat die Tabelle keine Spaltedepartment_id
und hat keinen Wert für diese Spalte.
Meine Frage ist: Wie kann ich das @ speicherdepartment_id
in der Datenbank?
Anmerkungen
In der Deklaration vondepartment_id
, Ich setzestore=True
, aber der Wert dieses Feldes wurde NICHT in der Datenbank gespeichert.Ich habe einen Test gemacht. Ich füge hinzucompute_field
mit TypText
, Es funktioniert, ich weiß nicht, warum das Berechnungsfeld nicht mit dem Typ @ funktionierMany2One
.
@api.depends('employee_id')
def _get_compute_field(self):
if self.employee_id.department_id:
self.compute_field = self.employee_id.department_id.name
compute_field = fields.Text(
string="Compute Field", store=True,
compute="_get_compute_field"
)