逗人!
我需要访问销售发票标题数据(即字段invoice_id
)以默认发票行表树视图中字段(analytics_id
)的另一个值。
我编写了以下代码来确定字段analytics_id
的默认值,并在继承account.invoice.line
的自定义类中实现它:
class my_account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
def _default_analytics_id(self, cr, uid, context=None):
if context is None:
context = {}
invoice_id = context.get('invoice_id', False)
if invoice_id:
inv_obj = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
plan = inv_obj.plan_id
return plan
return False
_defaults = {
'analytics_id': _default_analytics_id,
}
my_account_invoice_line()
令我惊讶的是,invoice_id
字段在上下文中不可用(context.get('invoice_id', False)
始终返回False
),尽管已创建发票标题 且< em>有一个id。我确信,它必须以某种方式提供 - 只是想不出怎么做的。
你能指导我走向正确的方向吗?
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
民间,
最后我做到了 - 并在此记录我的结果,希望它可以帮助其他人解决这类问题。
需要通过相应XML文件中的context
属性显式传递发票ID(或发票标题中的任何其他字段)。因此,我在继承的表单中修改了字段context
的{{1}}属性,如下所示:
invoice_line
备注:<record model="ir.ui.view" id="view_custom_account_invoice_form_inherited">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_line']" position="attributes">
<attribute name="context">{'type': type, 'custom_field_id': custom_field_id}</attribute>
</xpath>
</field>
</record>
是OpenERP 7中的标准值(请参阅文件context="{'type': type}"
)。
一旦完成此操作,发票行数据中的/addons/account/account_invoice_view.xml
值就会在发票行中提供,您可以将其用于您的目的:
custom_field_id
此致