我正在尝试在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也是如此,它不会给出错误。
我也尝试用obj_magazijn和obj_magazijn.id替换“12”:
obj_magazijn ==> stock.location(12,)
obj_magazijn.id ==> 12
和
obj_magazijn = self.env[('stock.location')].search([('id', '=', 12)])
有谁知道这个错误的真正原因和/或知道解决方案吗?
答案 0 :(得分: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})