Odoo 10 - 带动作的自定义按钮(POST JSON客户数据帮助!!)

时间:2017-06-19 17:14:39

标签: odoo odoo-10

Odoo 10 - 带动作的自定义按钮(发布JSON客户数据帮助!!)

您好我已经能够在account.invoice中创建一个按钮,并在xml中使用以下代码

<record id="invoice_form_shippinglabel" model="ir.ui.view">    
            <field name="name">account.invoice.form.shippinglabel</field>   
            <field name="model">account.invoice</field>   
            <field name="inherit_id" ref="account.invoice_form"/>
            <field name="arch" type="xml">    
                <header>    
                    <button name="label" string="Print Shipping Label" class="oe_highlight"/>
                </header>    
            </field>    
</record>

现在我想在用户按下按钮

后添加一个功能

所以在我的&#39; models.py&#39;我试着把这段代码

  def label(self):     
      data = {'ids':[12, 3, 4, 5, 6]}    
      req = urllib2.Request('https://requestb.in/1bz11jv1')    
      req.add_header('Content-Type', 'application/json')    
      response = urllib2.urlopen(req, json.dumps(data))

基本上,我想将一些样本数据发送到https://requestb.in/1bz11jv1

但是当我重新启动odoo时它没有用,它在odoo.log中给我这个错误

  

File&#34; /odoo/odoo-server/addons/labelprint/models/models.py" ;,第14行       def标签(个体经营):       IndentationError:意外缩进

我不太确定为什么它会导致我在谷歌上写有关缩进的错误而且它根本没有帮助

此外,我还有一个问题,我是否可以发布json数据

如何获取customer.address,customer.phone,customer.name等信息,因为我在发送json数据时需要这些信息

非常感谢

1 个答案:

答案 0 :(得分:1)

这是因为你的缩进。 Python使用缩进来分隔逻辑。

以下是适当缩进的示例。

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class ModelName(models.Model):
    _name = 'addon_name.model_name'

    field1 = fields.Char()
    field2 = fields.Char()
    field3 = fields.Char()

    @api.multi
    def test(self):
        print("HELLO")
        return

我认为您的按钮的xml定义也存在一些问题。你可能想要指定一个&#39;类型&#39;属性并为其指定一个&#39; object&#39;。

的值