2017-01-18 2 views
0

мне нужно создать компанию и сразу создать контакт, связанный с этой компанией:Odoo использование идентификатор только что созданной записи

vals = {...} 
company = self.env['res.partner'].create(vals) 
vals = {'company_id': company.id, ...} 
contact = self.env['res.partner'].create(vals) 

Но odoo говорит: ДЕТАЛЬ: Ключ (company_id) = (49) нет в таблице «res_company».

Сделка не совершена (как я полагаю). Так как я могу использовать поле только что созданных записей?

Метод запущен в ir.cron:

Метод называется так:

<record model="ir.cron" id="ir_cron_load_data"> 
    <field name="name">Load</field> 
    <field eval="False" name="active" /> 
    <field name="interval_number">24</field> 
    <field name="interval_type">hours</field> 
    <field name="numbercall">-1</field> 
    <field name="priority">100</field> 
    <field name="doall" eval="False"/> 
    <field name="model" eval="'sap_contacts'"/> 
    <field name="function" eval="'action_load_data'"/> 
    <field name="args" eval="'()'"/> 
</record> 

ответ

2
vals = {...} 
company = self.env['res.partner'].create(vals) 
vals = {'company_id': company.id, ...} 
contact = self.env['res.partner'].create(vals) 

company_id поле представляет собой реляционную поле между таблицами res_partner и res_company. Вы пытаетесь создать запись на res_partner с использованием vals, у vals есть ключ company_id, у которого есть company.id как его значение. У компании company.id есть идентификатор новой записи, которую вы создали на таблице res.partner.

Вы должны создать компанию в res.company таблице:

компания = self.env['res.company'].create(some_vals)

, а затем получить идентификатор этой компании company.id

+0

Спасибо, ты прав. Это пустая ошибка. – StackUser

Смежные вопросы