Openerp 基于第一个选择框从数据库动态加载第二个选择框

Openerp 基于第一个选择框从数据库动态加载第二个选择框,openerp,Openerp,请更正代码,以便根据第一个选择加载第二个选择框 type_id choice_id fruit orange fruit apple drinks coffee drinks tea 现在,当用户从选择框中选择水果时,作为需求的一部分,其他选择框“choice”应仅动态加载橙色和苹果。同样的方式,当

请更正代码,以便根据第一个选择加载第二个选择框

          type_id        choice_id
            fruit          orange
            fruit          apple
            drinks         coffee
            drinks         tea
现在,当用户从选择框中选择水果时,作为需求的一部分,其他选择框“choice”应仅动态加载橙色和苹果。同样的方式,当用户选择饮料作为类型,然后咖啡和茶应该加载

.py文件 XML

实数形式
坚实的基础
形式
立体树
坚实的基础
树
立体选择
固体选择
形式
可靠选择
固体选择
形式
树
坚实的基础
坚实的基础
形式
树

错误日志:
OpenERP服务器错误
客户端回溯(最近一次呼叫最后一次):
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\http.py”,第204行,在分派中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\controllers\main.py”,第1132行,在调用按钮中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\controllers\main.py”,第1120行,在调用中
代理中的文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\session.py”,第42行
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\session.py”,第30行,采用代理法
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\session.py”,第103行,发送
服务器回溯(最近一次呼叫最后一次):
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\web\session.py”,第89行,发送
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\netsvc.py”,第292行,在dispatch\u rpc中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\service\web\u services.py”,第622行,在调度中
检查文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\service\security.py”,第40行
get_池中的文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\pooler.py”,第49行
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\.\OpenERP\pooler.py”,第33行,在get\u db\u和\u池中
get中第192行的文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\.\OpenERP\modules\registry.py”
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\.\OpenERP\modules\registry.py”,第218行,新格式
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\modules\loading.py”,第350行,在load\U模块中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\modules\loading.py”,第256行,在加载标记的模块中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\modules\loading.py”,第187行,在加载模块图中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\modules\loading.py”,第74行,在
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\modules\load.py”,第124行,在加载数据中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\tools\convert.py”,第954行,在convert\u xml\u导入中
解析中第847行的文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\。\OpenERP\tools\convert.py”
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\tools\convert.py”,第814行,在标记记录中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\base\ir\ir\u model.py”,第937行,在更新中
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\OpenERP\addons\base\ir\ir\u ui\u view.py”,第214行,写入
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\ \OpenERP\osv\orm.py”,第4205行,以书面形式
文件“C:\Program Files\OpenERP 7.0-20131006-231029\Server\Server\.\OpenERP\osv\orm.py”,第1548行,在\u validate中
除表单外:('ValidateError',u'验证字段arch时出错:视图体系结构的XML无效!')

选择字段有一个静态列表。在您的情况下,您应该在视图中使用带有widget='Selection'的manyOne字段,以便将一个字段的值传递给另一个字段进行筛选
例如,为选项和类型创建表。对于这些表,名称字段就足够了。在选项表中,添加一个与类型表的manyOne关系(比如type_id),这是必填字段。然后在new.base表中,将这些字段添加为多个单字段(例如键入\u id和选择\u id),并在视图中为字段添加

t谢谢。我将按照上述步骤更新hereOmaL Sir,当我添加时,系统抛出错误,表示“除了表单:('ValidateError',在验证字段arch:Invalid XML for View Architecture!”时发生错误”。。注意:如果我用domain=“[('type\u id','=','drinks')]或[('type\u id','=','fruit')]替换,它可以正常工作。请帮助meI用错误日志更新我的查询[('type_id','=',1)]或[('type_id','=',2)]我已将我的模块发送给您。这可能有助于您调查错误
         from osv import osv
         from osv import fields
         class solid_base(osv.osv):
              _name='solid.base'
              _columns={

                       'type_id':fields.many2one('solid.type','type'),
                       'choice_id':fields.many2one('solid.choice','choice'),

                       }
         solid_base()

         class solid_type(osv.osv):
             _rec_name='type_id'
             _name='solid.type'
             _columns={

                       'type_id':fields.char('Type :'),

                      }

        solid_type()


      class solid_choice(osv.osv):
           _rec_name='choice_id'
          _name='solid.choice'
          _columns={
                 'choice_id':fields.char('Choice :'),
                 'type_id':fields.many2one('solid.type','Type :'),

                   }

      solid_choice()
    <?xml version="1.0" encoding="utf-8"?>
    <openerp>
     <data>

   <record model="ir.ui.view" id="solid_base_form">
       <field name="name">solid.base.form</field>
           <field name="model">solid.base</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
        <form string="Solid Base">                     
          <field name="type_id" widget="selection"/>
          <field name="choice_id"  domain="[('type_id','=',type_id)]" widget="selection"/>
     </form>
         </field>
    </record>
    <record model="ir.ui.view" id="solid_base_tree">
        <field name="name">solid.base.tree</field>
        <field name="model">solid.base</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Solid Base">              
       <field name="type_id"/>
       <field name="choice_id"/>
            </tree>
       </field>
    </record>
    <record model="ir.ui.view" id="solid_choice_form">
           <field name="name">solid.choice.form</field>
           <field name="model">solid.choice</field>
           <field name="type">form</field>
           <field name="arch" type="xml">
               <form string="solid.choice">                    
                   <field name="type_id" />
               <field name="choice_id" />

     </form>
          </field>
    </record>



        <record model="ir.actions.act_window" id="action_solid_seq7">
        <field name="name">solid choice</field>
        <field name="res_model">solid.choice</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>

    <record model="ir.actions.act_window" id="action_solid_seq6">
        <field name="name">solid base</field>
        <field name="res_model">solid.base</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>


    <menuitem id="menu_solid_base_super_main"  name="Solid Base"/>
    <menuitem id="menu_solid_base_main" parent="menu_solid_base_super_main" name="New Solid Base"/>
    <menuitem id="menu_solid_base1" parent="menu_solid_base_main"
              name="New Solid Base1" action="action_solid_seq6"/>
              <menuitem id="menu_solid_base2" parent="menu_solid_base_main"
              name="New Solid Base2" action="action_solid_seq7"/>

</data>
 OpenERP Server Error
Client Traceback (most recent call last):
File "C:\Program Files\OpenERP 7.0-20131006-    231029\Server\server\openerp\addons\web\http.py", line 204, in dispatch
File "C:\Program Files\OpenERP 7.0-20131006- 231029\Server\server\openerp\addons\web\controllers\main.py", line 1132, in call_button
File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\openerp\addons\web\controllers\main.py", line 1120, in _call_kw
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\openerp\addons\web\session.py", line 42, in proxy
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\openerp\addons\web\session.py", line 30, in proxy_method
   File "C:\Program Files\OpenERP 7.0-20131006-  231029\Server\server\openerp\addons\web\session.py", line 103, in send


   Server Traceback (most recent call last):
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\openerp\addons\web\session.py", line 89, in send
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\netsvc.py", line 292, in dispatch_rpc
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\service\web_services.py", line 622, in dispatch
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\service\security.py", line 40, in check
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\pooler.py", line 49, in get_pool
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\pooler.py", line 33, in get_db_and_pool
   File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\registry.py", line 192, in get
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\registry.py", line 218, in new
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\loading.py", line 350, in load_modules
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\loading.py", line 256, in load_marked_modules
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\loading.py", line 187, in load_module_graph
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\loading.py", line 74, in <lambda>
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\modules\loading.py", line 124, in _load_data
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\tools\convert.py", line 954, in convert_xml_import
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\tools\convert.py", line 847, in parse
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\tools\convert.py", line 814, in _tag_record
File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\openerp\addons\base\ir\ir_model.py", line 937, in _update
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\openerp\addons\base\ir\ir_ui_view.py", line 214, in write
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\osv\orm.py", line 4205, in write
  File "C:\Program Files\OpenERP 7.0-20131006-231029\Server\server\.\openerp\osv\orm.py",  line 1548, in _validate
  except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch:  Invalid XML for View Architecture!')