2016-06-27 2 views
0

Ich habe zwei Tabellen in meinem Projektaufruf task und params, task stellt Arbeitstask und params sind die Parameterliste dieser Aufgabe. sie sind one2many Beziehung. params hat eine Spalte namens task_id, die die ID der Aufgabentabelle (Fremdschlüssel) enthält.Odoo, wie man Daten zu mehrer Tabellen mit ausländischer Beschränkung einfügt?

Hier füge ich eine Zeile in die task Tabelle und dann einige Zeilen in params Tabelle einfügen:

1.task.create(vals) 
2.params.create(param_vals) 

Aber aufgrund der Transaktion, wenn die 2 Linie der Aufgabe ausgeführt wird, wurde nicht eingeführt, so dass der task_id nicht war erzeugt. Wie vermeide ich das?

Antwort

0

So funktioniert eine SQL-Transaktion nicht.

Wenn Sie eine Transaktion in zwei Schritten wie folgt aus:

  • Schritt 1 Einsatz in Aufgabe

  • Schritt 2 Einsatz in params

Dann wird die Task-ID wird innerhalb der Transaktion verfügbar. Wenn Sie also Aufgaben eingeben, müssen Sie die PK ID lesen und sie dann in params verwenden.

Etwas wie dieses: Python/postgres/psycopg2: getting ID of row just inserted

Verwandte Themen