Python 如何从向导按钮打开表单-Odoo v8

Python 如何从向导按钮打开表单-Odoo v8,python,openerp,odoo-8,Python,Openerp,Odoo 8,我有这样的看法: <record id="view_prod_order_form" model="ir.ui.view"> <field name="name">bsi.production.order.form</field> <field name="model">bsi.production.order</field> <field name="arch" type="

我有这样的看法:

   <record id="view_prod_order_form" model="ir.ui.view">
        <field name="name">bsi.production.order.form</field>
        <field name="model">bsi.production.order</field>
        <field name="arch" type="xml">
            <form string="Production Order">
            <div class="oe_title">
            <label for="name" class="oe_edit_only" />
            <h1>
                <field name="name" />
            </h1>
            </div>
            <sheet>
                <h1>
                    <field name="name" class="oe_inline" readonly="1"/>
                </h1>
                <group>
                    <group>
                      <field name="product_id"/>
                      <field name="qty_available"/>
                      <field name="isbn1" attrs="{'invisible': [('type_prod', '!=', 'direct')]}" />
                      <field name="isbn2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn3" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn4" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn5" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn6" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn7" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn8" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                    </group>
                    <group>
                      <field name="type_prod"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}" />
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                    </group>
                </group>
            </sheet>
            </form>
        </field>
    </record>
我想将view frmo称为向导按钮,并将其保存到数据库中,就像从标准菜单访问它一样

在同一型号中,我有以下例行程序:

@api.multi
def action_open_prod(self):
    assert len(self) == 1, 'This option should only be used for a single id at a time.'
    #template = self.env.ref('account.email_template_edi_invoice', False)
    id = self.id
    return {
        'name': self.name,
        'res_model': 'bsi.production.order',
        'res_id': id,
        'type': 'ir.actions.act_window',
        'context': {},
        'view_mode': 'form',
        'view_type': 'form',
        'view_id': self.env.ref('view_prod_order_form'),
        'target': 'current', #'target': 'current',

    }
这是该按钮的向导视图(当我尝试将其添加到瞬态模型时,它表示无法找到该视图,尽管该视图存在,因此我必须将其放在同一模型上):


生产订单(向导)
ir.actions.act\u窗口
生产订单
形式
树
新的
bsi.production.order.form
生产订单
或
不管怎样,每次我点击这个按钮,它都会让我:

Traceback (most recent call last):
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 546, in _handle_exception
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 583, in dispatch
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 319, in _call_function
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\service\model.py", line 118, in wrapper
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 316, in checked_call
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 812, in __call__
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 412, in response_wrap
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\web\controllers\main.py", line 948, in call_button
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\web\controllers\main.py", line 936, in _call_kw
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 268, in wrapper
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 399, in old_api
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\mrp_worksheet_contract\models\models.py", line 523, in action_open_prod
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 797, in ref
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 266, in wrapper
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 508, in new_api
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\base\ir\ir_model.py", line 923, in xmlid_to_object
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 268, in wrapper
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\base\ir\ir_model.py", line 909, in xmlid_to_res_model_res_id
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\api.py", line 268, in wrapper
File "<decorator-gen-3>", line 2, in xmlid_lookup
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\tools\cache.py", line 74, in lookup
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\base\ir\ir_model.py", line 896, in xmlid_lookup
ValueError: need more than 1 value to unpack
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\http.py”,第546行,在异常处理中
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\http.py”,第583行,在调度中
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\http.py”,第319行,在调用函数中
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\service\model.py”,第118行,在包装器中
文件“C:\Program Files\Odoo 8.0-20170809\server\ \openerp\http.py”,第316行,在checked\u调用中
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\http.py”,第812行,在调用中__
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\http.py”,第412行,作为响应
文件“C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\web\controllers\main.py”,第948行,在调用按钮中
文件“C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\web\controllers\main.py”,第936行,在调用中
包装器中的文件“C:\Program Files\Odoo 8.0-20170809\server\ \openerp\api.py”,第268行
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\api.py”,第399行,在旧api中
文件“C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\mrp\U工作表\u contract\models\models.py”,第523行,正在运行\u open\u prod
文件“C:\Program Files\Odoo 8.0-20170809\server\ \openerp\api.py”,第797行,参考
包装器中的文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\api.py”,第266行
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\api.py”,第508行,在新的api中
文件“C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\base\ir\ir\u model.py”,第923行,在xmlid\u to\u对象中
包装器中的文件“C:\Program Files\Odoo 8.0-20170809\server\ \openerp\api.py”,第268行
文件“C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\base\ir\ir\u model.py”,第909行,xmlid\u to\u res\u model\u res\u id
包装器中的文件“C:\Program Files\Odoo 8.0-20170809\server\ \openerp\api.py”,第268行
xmlid_查找中的文件“”,第2行
文件“C:\Program Files\Odoo 8.0-20170809\server\。\openerp\tools\cache.py”,第74行,在查找中
文件“C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\base\ir\ir\u model.py”,第896行,在xmlid\u查找中
ValueError:需要超过1个值才能解包
我只想从按钮打开原始表单


有什么想法吗?

您的
ref
调用必须有两个参数

而不是:

self.env.ref('view_prod_order_form')
您实际上需要:

self.env.ref('module_name.view_prod_order_form')

ref
调用必须有两个参数

而不是:

self.env.ref('view_prod_order_form')
您实际上需要:

self.env.ref('module_name.view_prod_order_form')

你真的应该避免两次发布基本相同的问题。你真的应该避免两次发布基本相同的问题。非常感谢,不得不问得更好,对不起that@NeoVe没关系,但以后最好只编辑现有的问题。很高兴它最终成功了。非常感谢,我不得不问得更好,很抱歉that@NeoVe没关系,但以后最好只编辑现有的问题。很高兴最后成功了。