odoo:我继承了hr.expense模块,然后我想显示所选的字段但是当我尝试保存它时它给了我一个错误。为什么?

时间:2017-08-09 03:58:17

标签: xml python-2.7

this is the screenshot on my error. please view it

我想在我继承的模块上显示选定的字段,即hr.expense但是当我尝试保存它时它会给我错误。我在我继承的模块中创建了Many2one,这是' hr.expense'然后One2many到我的新模块。

这是我的.py

class Items (models.Model):
    _inherit = 'hr.expense'

    items_id = fields.Many2one('account.pettycash.request', string="Items")

class PettyCashRequest (models.Model):
    _name = 'account.pettycash.request'

    items_ids = fields.One2many('hr.expense', 'items_id', string="Items")

    state = fields.Selection([
        ('draft', "Draft"),
        ('confirmed', "Confirmed"),
        ('approved', "Aprroved"),])

    @api.multi 

在我的XML中,我调用了我的One2many字段,其中是item_ids,我调用hr.expense具有的所选字段,即product_id,unit_amount和quantity。 这是我的xml。

                        <page string="Items">
                            <field name="items_ids">
                                 <tree editable = "bottom">
                                     <field name = "product_id"/>
                                     <field name = "unit_amount"/>
                                     <field name = "quantity"/>
                                 </tree>

                                 <form>
                                     <sheet>
                                         <group>
                                             <field name = "product_id"/>
                                             <field name = "unit_amount"/>
                                             <field name = "quantity"/>
                                         </group>
                                     </sheet>
                                 </form>
                             </field>
                         </page>
                     </notebook>

2 个答案:

答案 0 :(得分:0)

Odoo抱怨“域名状态”,“不存在”,(“草案”,“拒绝”)“。 你继承了一个州领域,但是'拒绝'不存在。所以我检查hr_expense模块和状态字段是这样的。

state = fields.Selection([
        ('draft', 'To Submit'),
        ('reported', 'Reported'),
        ('done', 'Posted'),
        ('refused', 'Refused')
        ], compute='_compute_state', string='Status', copy=False, index=True, readonly=True, store=True,
help="Status of the expense.")

答案 1 :(得分:0)

问题基本上是因为名为'state'的字段而不是因为字段'item_ids'

问题:您正在某些域中使用“州”字段。 Odoo在视图中搜索减速但找不到减速。 Odoo要求您首先在视图中声明该字段,然后在域属性中使用它。

您可以做的就是在您开始创建表单

的开头
<field name='state'/>

我通常做的是:

<form string='FormString'>
   <header>

     <!-- Decleration of fields in the view -->

     <field name='state'/>
     <field name='items_id'/>
   </header>

   <!-- Code for my form view -->
</form>