repeatIn(list,varname [,tagname]) - > NameError:name' o'未在openerp

时间:2015-09-02 11:52:21

标签: openerp-7 rml

我从以下odoo文档的官方链接获得此信息:

repeatIn(list,varname [,tagname]):为列表中的每个对象重复模板的当前部分(整个文档,当前部分,表中的当前行)。在模板的标签中使用varname。从版本4.1.X开始,您可以使用可选的第三个参数,该参数是您要循环的.RML标记的名称。

https://doc.odoo.com/v6.0/developer/3_11_reports/11_1_openoffice_report.html

我想知道如何使用这种重复,因为我试过这样:

  <para style="P7">[[   repeatIn(get_employee_lines((example.company_id,example.date_start,example.      date_end), o[,td]) ]]</para>

  <para style="P7">[[ o['name'] ]]</para> 

我有这个错误:

   2015-09-02 11:37:00,027 8110 ERROR openerp openerp.tools.safe_eval: Cannot eval      
  'repeatIn(get_employee_lines((example.company_id,example.date_start,example.date_end), o[,td])'
  Traceback (most recent call last):
  File "/opt/openerp/v7/server/openerp/tools/safe_eval.py", line 288, in safe_eval
  return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
  File "/opt/openerp/v7/server/openerp/tools/safe_eval.py", line 162, in test_expr
  code_obj = compile(expr, "", mode)
  File "<string>", line 1
  repeatIn(get_employee_lines((example.company_id,example.date_start,example.date_end), o[,td])
  ^
  SyntaxError: invalid syntax
  2015-09-02 11:37:00,027 8110 ERROR openerp openerp.tools.safe_eval: Cannot eval "o['name']"
  Traceback (most recent call last):
  File "/opt/openerp/v7/server/openerp/tools/safe_eval.py", line 288, in safe_eval
  return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
  File "", line 1, in <module>
  NameError: name 'o' is not defined

请,谁能解决这个问题。 问候。

1 个答案:

答案 0 :(得分:0)

首先,语法错误,打开三个paranthesis并且只关闭两个。

  <para style="P7"> [[ repeatIn(get_employee_lines(example.company_id,example.date_start,example.      date_end), 'o') ]]   </para>

如果o是对象,则使用用户点表示法来访问值。如果它是字典,那么使用o ['key'] 在这里,不知道get_employee_lines函数返回什么,但它必须返回[对象或词典等]列表 你可以比较在Python中的repeatIn to for循环