odoo中不存在继承的字段



我正在为odoo 15中的销售报价表开发一个自定义插件,同时继承sale.order.template模型。我正试图在数量字段旁边添加一个新字段,但我一直得到一个";字段[字段名称]不存在错误";关于我的视图文件。这是我的视图文件中的代码:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record id="sales_quotation_form_inherit" model="ir.ui.view">
<field name="name">sale.order.template.form.inherit</field>
<field name="model">sale.order.template</field>
<field name="inherit_id" ref="sale_management.sale_order_template_view_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='sale_order_template_line_ids']/form[@string='Quotation Template Lines']/group/group[1]/div/field[@name='product_uom_qty']" positon="after">
<field name='price'/>
</xpath>
</field>
</record>
</data>
</odoo>

我的模型.py代码:

from odoo import models, fields
class SalesQuotation(models.Model):
_inherit = "sale.order.template"
price = fields.Many2one(string='Unit Price')

有人能告诉我问题出在哪里吗?

您的新字段是Many2one。您需要指定它所指的表,即:

price = fields.Many2one('other.table...', string='Unit Price')

也不能只使用float字段吗?在任何情况下,我都会先用一个普通的float字段进行测试。

您的视图扩展似乎更改了销售行模板上的某些内容。因此,您的模型扩展是为错误的模型完成的。改为扩展sale.order.template.line

from odoo import models, fields
class SaleOrderTemplateLine(models.Model):
_inherit = "sale.order.template.line"
price = fields.Float(string='Unit Price')

哦,价格不应该是浮动的吗?我已经在我的代码示例中更改了这一点。

有一些事情可以解决这些问题:

视图继承

  1. 确保自定义模块依赖于定义sale.order.templatesale_management模块:

清单.py

...
'depends': ['sale_management'],
...
  1. 简化xpath
...
<xpath expr="//field[@name='sale_order_template_line_ids']/form//field[@name='product_uom_qty']" positon="after">
<field name='price' />
</xpath>
...

型号

更改您的代码如下:

from odoo import models, fields
class SalesQuotation(models.Model):
_inherit = "sale.order.template"
price = fields.Float(string='Unit Price')

相关内容

  • 没有找到相关文章

最新更新