Odoo 如何在openerp中显示PostgreSQL数据库中的选择字段值(组合框)

Odoo 如何在openerp中显示PostgreSQL数据库中的选择字段值(组合框),odoo,Odoo,使用下面的代码,我可以插入/edi trecord而不会出现任何问题。“我的表单”视图显示所有字段,但“速率”是选择字段。此外,树状图显示未定义的速率字段。我的数据库保存了“速率”字段的正确值。我想知道这一问题的根本原因以及如何克服这一问题 <record model="ir.ui.view" id="test_base_form"> <field name="name">test.base.form</field>

使用下面的代码,我可以插入/edi trecord而不会出现任何问题。“我的表单”视图显示所有字段,但“速率”是选择字段。此外,树状图显示未定义的速率字段。我的数据库保存了“速率”字段的正确值。我想知道这一问题的根本原因以及如何克服这一问题

   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>
.py文件在这里给出

from osv import osv
from osv import fields

class test_base(osv.osv):
     _name='test.base'
     _columns={
           'name':fields.char('Name'),
           'email':fields.char('Email'),

           'code':fields.integer('Unique ID'),
            sal':fields.float('Salary'),
           'rate':fields.selection(((10,'10'), (20,'20'),(30,'30')),
           'Percentage of Deduction'),
           'ded':fields.float('Deduction'),
           'bdisplay':fields.float('Button Display'),

           }

    def on_change_ded_cal(self, cr, uid, ids,rate,context=None):
        x=rate*2
        return {'value':{'ded':x }}


test_base() 
   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>
我的XML是

   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>

test.base.form
测试基
形式
test.base.tree
测试基
树

对于您的选择字段,您必须这样写:

   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>
选择字段中缺少字符串

   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>
速率“:字段。选择([(10,'10'), (20,'20'), (30,'30'),'Rate')

   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>

希望这有助于

对不起的朋友!我的代码有字符串,下面给出了相同的字符串比率::字段。选择((10,'10'),(20,'20'),(30,'30'),'Percentage of Decredition'),我能收到你的电子邮件以发送我的模块吗attachmentjamesbaleme@gmail.comThanks. 邮件已发送给您,并附有后续步骤。我在您的模块中发现了错误,在onchange方法中,您返回的是不正确的True值,onchange方法从不返回True,它总是返回{'value':{'ded':x}这样,所以您可以在代码中更改如下内容:“def on_change_ded_cal”(self、cr、uid、id、rate、sal、ded、context=None):如果rate:x=rate*salx=x/100返回{'value':{'ded':x}
   <record model="ir.ui.view" id="test_base_form">
       <field name="name">test.base.form</field>
           <field name="model">test.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="Test Base">                       
                   <field name="name"/>
                   <field name="email"/>
                   <field name="code"/>
                   <field name="sal"/>
                   <field name="rate" on_change="on_change_ded_cal(rate,sal,ded)"/>
                   <field name="ded"/>                       
                   <field name="bdisplay"/> 
                  <button name="my_button_display" string="Calculate" type="object"/>
                     <newline />
                     <newline />
                     <newline />
                    <field name="skillid"  colspan="4"  nolabel="1"/>                          
                  </form>
          </field>
    </record>
    <record model="ir.ui.view" id="test_base_tree">
        <field name="name">test.base.tree</field>
        <field name="model">test.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Test Base">               
               <field name="name"/>
                <field name="email"/>
                <field name="code"/>
                <field name="sal"/>          
                <field name="ded"/> 
                <field name="rate"/>    
            </tree>
        </field>
    </record>