Сделать кнопку на сайте, который запускает скрипт Python в ODOO - PullRequest
0 голосов
/ 10 апреля 2019

Я сделал новый модуль в odoo. У него есть кнопка действия (проверьте ip с помощью ipwhois). Теперь мне нужно интегрировать этот модуль в веб-сайт. Это легко показать поля на веб-странице, но я не знаю, как сделать кнопку и вызвать функцию. Кнопка отображается на веб-странице, но функция не вызывается.

Как я понимаю: нажатие на кнопку должно вызвать функцию 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>

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Вам нужно поместить код в ваш файл models.py. Ваш XML-файл имеет

<button name="make_request" type="object" string="Make check" />

Когда пользователь нажимает на эту кнопку, он переходит в ваш файл models.py, чтобы активировать кнопку. Похоже, вы используете class: product.template [из вашего XML-файла]

В файле models.py найдите раздел product.template, внутри этого класса введите:

@api.multi
def make_request(self):
    Put your code here
    return

Так что теперь ваша кнопка в XML связана с кодом Python. Вот так вы получаете кнопку для активации вашего кода Python (чтобы ваша кнопка вызывала ваш код Python)

0 голосов
/ 10 апреля 2019

Во-первых, вы должны написать функцию make_request в файле product_template.py.Средства, в которых вы должны наследовать модель product.template.

    def make_request(self):
        # Here your code...

И с помощью этой функции вы можете установить значение поля «result_check».

Надеюсь, это поможет вам. Спасибо.

...