我在odoo中制作了一个新模块。它具有操作按钮(使用ipwhois检查ip)。现在,我需要将此模块集成到网站中。在网页上显示字段很容易,但是我不知道如何制作按钮和调用函数。该按钮显示在网页上,但功能不可调用。
据我了解:单击按钮必须调用python函数,重新加载页面并在“ result_check”字段中写入新值。
<record id="sale_form_view" model="ir.ui.view">
<field name="name">sale.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="website_sale.product_template_form_view"/>
<field name="arch" type="xml">
<field name="categ_id" position="after">
<button name="make_request" type="object" string="Make check" />
<field name="result_check" />
</field>
</field>
</record>
<templateid="add_fields_product"inherit_id="website_sale.product">
<xpathexpr="//div[@id='product_details']"position="before">
<div>
<a role="button" href="#"><span>Make check</span></a>
<p itemprop="name" t-field="product.result_check">Result</p>
</div>
</xpath>
</template>
答案 0 :(得分:0)
首先,您必须在product_template.py文件中编写make_request函数。意味着,您必须在其中继承product.template模型。类似于以下内容:
def make_request(self):
# Here your code...
通过此功能,您可以设置“ result_check”字段的值。
希望这对您有所帮助。谢谢。
答案 1 :(得分:0)
您需要将代码放入models.py文件中。您的xml文件具有
<button name="make_request" type="object" string="Make check" />
当用户单击此按钮时,它会转到您的models.py文件中以激活该按钮。看起来您正在使用类:product.template [来自xml文件]
在models.py文件中,找到product.template部分,在该类内部将其放入:
@api.multi
def make_request(self):
Put your code here
return
现在,您在xml中的按钮已链接到python代码。这样便可以通过按钮来激活python代码(使按钮称为python代码)