【问题标题】:odoo Model id reserved column not createdodoo 模型 id 保留列未创建
【发布时间】:2016-06-28 16:55:46
【问题描述】:

我正在从我的模型创建一个表,但没有创建字段名称“id”。 代码如下:

from opener import models, fields

class other_class(models.Model) : 
      {this is other table columns}    

class Test(models.Model):
      _name = 'stock.location.product.rel'

      location_id = fields.Many2one('stock.location','Location',required=True,ondelete="cascade")
      product_id = fields.Many2one('product.product','Product',required=True,ondelete="cascade")

现在当我运行它时,会创建表“stock_location_product_rel”,但只有列(location_id、product_id、create_uid、create_date、write_uid、write_date)我没有看到名为“id”的列

我什至尝试过使用(osv.osv),它不起作用。

谢谢,

更新:

我使用了相同的代码,但表名不同,那么它有效吗?有人可以解释一下吗?

工作代码是:

class Test(models.Model):
      _name = 'stock.location.product'

      location_id = fields.Many2one('stock.location','Location',required=True,ondelete="cascade")
      product_id = fields.Many2one('product.product','Product',required=True,ondelete="cascade")

我只删除了 .rel ?

更新:2

我在产品表和位置表上创建了many2many字段,它自动创建了表(stock.location.product.rel),然后创建了类来访问它,同样没有id列。

请帮忙

【问题讨论】:

  • 运行 select id from stock_location_product 时会发生什么?来自psql
  • 嗨 danidee,错误 ID“列 ID 不存在”
  • 如果表中没有重要信息,请删除表,然后升级 odoo 模块以重新从头开始重新创建它...因为据我所知 id (主键) 由 odoo 自动处理,您无需手动操作

标签: postgresql openerp odoo-8


【解决方案1】:

尝试先编写缺少 'id' 的类,然后再编写其他类。它在我的情况下有效。 如果这不起作用,请尝试使用 _table 重命名您的表。

【讨论】: