【问题标题】:Odoo: Integrity error when creating new recordOdoo:创建新记录时出现完整性错误
【发布时间】:2017-05-10 18:04:38
【问题描述】:

我正在尝试在 stock.quant 中插入一条新记录。当我通过这个 SQL 查询尝试它时,这有效:

INSERT INTO stock_quant (create_date, qty, create_uid, location_id, company_id, write_date, write_uid, product_id, in_date) VALUES (now(), +20, 1, 12, 1, now(), 1, 8, now())

现在我想在 Odoo 中做同样的事情。 我试过这样:

stock_quant_obj = self.env[('stock.quant')]
stock_quant = stock_quant_obj.search_read(['&', ('product_id', '=', id_huidigproduct), ('realtimemeting', '=', True)], ['qty']) 
if stock_quant == []:
    stock_quant_obj.create({'product_id': self.id, 'qty': 100, 'location_id:': 12, 'company_id': 1, 'realtimemeting': True})

但这给了我一个完整性错误:

完整性错误

操作无法完成,可能有以下原因:

  • 删除:您可能正试图删除一条记录,而其他记录仍在引用它
  • 创建/更新:未正确设置必填字段

[带有引用的对象:location_id - location.id]

我认为这可能与 location_id 是 stock.quant 中的 many2one 字段有关。但是 product_id 也是如此,它不会出错。

我还尝试将“12”替换为 obj_magazijn 和 obj_magazijn.id:

obj_magazijn ==> stock.location(12,)
obj_magazijn.id ==> 12

obj_magazijn = self.env[('stock.location')].search([('id', '=', 12)])

有谁知道这个错误的真正原因和/或知道解决方案吗?

【问题讨论】:

    标签: python openerp recordset


    【解决方案1】:

    我认为除了语法之外没有任何问题。

    self.env[('stock.quant')] 替换为 self.env['stock.quant']

    了解更多关于Environment

    stock_quant_obj = self.env['stock.quant']
    #### here id_huidigproduct is unknown for me.
    stock_quant = stock_quant_obj.search_read([('product_id', '=', id_huidigproduct), ('realtimemeting', '=', True)], ['qty']) 
    if not stock_quant :
        stock_quant_obj.create({'product_id': self.id, 'qty': 100, 'location_id:': 12, 'company_id': 1, 'realtimemeting': True})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2016-07-13
      • 1970-01-01
      • 2021-10-20
      • 2016-07-29
      • 2020-04-18
      • 1970-01-01
      相关资源
      最近更新 更多