在OpenERP中获取用户输入的最佳方法是什么?

时间:2015-01-26 15:23:44

标签: openerp odoo

在OpenERP中获取用户输入的最佳方式是什么?我要求用户在表单上键入值(产品代码),但我不知道捕获该值的最佳方法是什么,并在按钮点击时将其传递给按钮操作功能。按钮也在表格上。

如果您可以提供代码指南和示例,如何使用一个输入字段和一个按钮创建简单向导,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

要从用户那里获得输入,然后使用它执行某些操作,通常会使用向导。

向导使用models.TransientModel包含要从用户获取信息的字段,以及通常作为对话框打开的表单视图。 表单页脚区域上的按钮将根据这些输入执行操作。

例如,请参阅Load a Translation菜单中的Settings选项。

答案 1 :(得分:0)

您需要使用向导:

  

向导通过动态表单描述与用户(或对话框)的交互式会话

将此用于 test_wizard.xml 文件:

<?xml version="1.0"?>
<openerp>
  <data>

    <record model="ir.ui.view" id="wizard_form_view">
      <field name="name">wizard.form</field>
      <field name="model">your_module.wizard</field>
      <field name="arch" type="xml">
        <form string="Lorem Ipsum">
          <group>
            <field name="input_field"/>
          </group>
          <footer>
            <button name="button_accept" type="object"
                    string="Accept" class="oe_highlight"/>
            <button special="cancel" string="Cancel"/>
          </footer>
        </form>
      </field>
    </record>

    <act_window id="action_wizard"
                name="Title of the wizard"
                res_model="your_module.wizard"
                view_mode="form"
                target="new"
                key2="client_action_multi"/>

  </data>
</openerp>

这适用于 test_wizard.py 文件:

class Wizard(models.TransientModel):
_name = 'your_module.wizard'

input_field = fields.Char(string="Your Input Field", required=True)

@api.multi
def button_accept(self):
    for record in self:
        auxiliar = record.input_field
        print 'You have entered this input:' auxiliar
    return {}

有关更多官方信息,请查看HERE