Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在不同型号的树视图中显示one2many字段[Odoo]_Python_Odoo_Odoo 10 - Fatal编程技术网

Python 在不同型号的树视图中显示one2many字段[Odoo]

Python 在不同型号的树视图中显示one2many字段[Odoo],python,odoo,odoo-10,Python,Odoo,Odoo 10,我希望[在模型帐户的树状视图中]显示应用于特定发票的所有税费及其金额 这是输出: 列Tax line显示表account.invoice.Tax中存在的税的ID(而我想显示它们的名称和相应的金额) 模型account.invoice有一个名为tax_line_id[tax line]的字段,其中包含发票上所有税费的记录,该记录存储在单独的表account.invoice.tax中,在其自身的树视图中如下所示: 我想提取税名及其对应的金额,以反映在account.invoice的树状视图中 下

我希望[在模型帐户的树状视图中]显示应用于特定发票的所有税费及其金额 这是输出:

列Tax line显示表account.invoice.Tax中存在的税的ID(而我想显示它们的名称和相应的金额)

模型account.invoice有一个名为tax_line_id[tax line]的字段,其中包含发票上所有税费的记录,该记录存储在单独的表account.invoice.tax中,在其自身的树视图中如下所示:

我想提取税名及其对应的金额,以反映在account.invoice的树状视图中

下面是我的python代码,它似乎不起作用:

@api.one
def taxz(self):
    tax_pool = self.pool.get("account.tax")
    found_taxes = tax_pool.read(cr, uid, [tax_id,], ["tax_line_ids"], context)
    found_tax = found_taxes[0] if found_taxes else None
    tax_line_ids = found_tax["tax_line_ids"]
    _logger.critical("context type: " + type(context))
    _logger.critical("context content: " + str(context))
    _logger.critical(tax_line_ids)
视图的xml代码:

<field name="tax_line_ids" widget="many2many_tags" />

试试这个:

类别发票(models.Model):
_继承='account.invoice'
tax\u line\u id=字段.Many2many('account.invoice.tax',
“发票税”,
“发票编号”,
“税务id”,
"税单",,
compute='get\u tax\u list',store=True)
@api.dependens('tax\u line'、'tax\u line.amount')
def get_tax_列表(自身):
对于rec in self:
如果记录征税行:
rec.tax_line_id=[(6,0,rec.tax_line.id)]
其他:
记录税务行ID=[(5,0,0)]
但是这样做只会在树视图中显示没有金额的税单 如果要显示需要覆盖
account.invoice.tax中的
name\u get
方法的金额
但这将影响所有的
x2多个
字段

acontinvoicetax类(models.Model):
_继承='account.invoice.tax'
@api.multi
def名称_获取(自身):
res=[]
对于rec in self:
res.append((rec.id,rec.name+':'+str(rec.amount)))
返回res
如果不希望这样,则需要将类型更改为
Char
,然后重新计算该字段 或者创建另一个
模型
以节省税款,并为该模型定义
name\u get

正如你所看到的,如果你仍然得到keyErro,你一定是做错了什么,检查你的代码的缩进继承值…:


您可以添加一个char字段,以便在树视图的显示中使用它:

class Invoice(models.Model):
        _inherit = 'account.invoice'

        tax_line_tree_view = fields.Char(compute='get_tax_list')

        @api.multi
        def get_tax_list(self):
             tax_disp = ""
             for rec in self:
                  if rec.taxe_line:
                       for tax in taxe_line:
                            tax_disp = tax_disp + "["+tax.name+"], " 
                       rec.tax_line_tree_view = tax_disp[:-2] # [:-2] just to remove the last ', ' characters.
                  else:
                       rec.tax_line_tree_view  = tax_disp
在树视图所在的XML文件中,添加以下字段:

<field name="tax_line_tree_view " />

而不是税号


我希望这能回答你的问题。

刚刚尝试了第一部分,但它不起作用[显示一个空列表]我将@api.dependens更改为tax\u line\u id,因为它显示了关键错误。问题是它应该工作,请尝试在方法的开头打印,看看它是否被调用。抱歉,这是我的错误,名称是tax\u line not tax\u line我已经更改了,但它仍然不工作。加上控件没有进入函数,我放了一个_记录器,它没有打印任何东西。你把方法放在哪里了?该方法属于account.invoice和account.invoice有那个字段