在OpenERP中获取用户输入的最佳方式是什么?我要求用户在表单上键入值(产品代码),但我不知道捕获该值的最佳方法是什么,并在按钮点击时将其传递给按钮操作功能。按钮也在表格上。
如果您可以提供代码指南和示例,如何使用一个输入字段和一个按钮创建简单向导,我们将不胜感激。
答案 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