在Odoo中更新上下文8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Odoo中更新上下文8相关的知识,希望对你有一定的参考价值。
我正在编写一个方法,它首先从模型中检索当前上下文,然后使用context.update()为上下文添加新值。我也尝试使用当前方法self.with_context()但仍然没有成功,因为上下文值似乎已冻结且无法传入。我从某些来源在线阅读有一种方法可以覆盖name_get()。但是来源只是简单地参考,没有明确的指示,所以我可以遵循。我是Odoo的新手,而v7和v8之间的问题就是杀了我。请帮我修改以下源代码:
def get_print_report(self): domain = [('effective_date', '>=', self.from_date), ('effective_date', '<=', self.to_date), ('employee_id', 'in', self.employee_ids.ids), ('department_id', '=', self.department_id.id), ('job_id', '=', self.job_id.id)] list_view = self.env.ref( 'trainingwagekp.payroll_wage_hist_wizard_tree_view') context = self._context.copy() if context is None: context = if context.get('order_by', False): context.update('default_order': self.order_by + ' desc') self.with_context(context) print '===============', self._context return'name': 'Wage History Report', 'view_type': 'form', 'view_mode': 'tree', 'view_id': list_view.id, 'res_model': 'trobz.payroll.wage.history', 'type': 'ir.actions.act_window', 'context': context, 'domain': domain,
另请告诉我哪个是在Odoo 8中修改上下文的最佳方法。谢谢
答案
您已经传递了新的上下文。只需删除self.with_context(context)行。按照以下代码。
def get_print_report(self):
domain = [('effective_date', '>=', self.from_date),
('effective_date', '<=', self.to_date),
('employee_id', 'in', self.employee_ids.ids),
('department_id', '=', self.department_id.id),
('job_id', '=', self.job_id.id)]
list_view = self.env.ref(
'trainingwagekp.payroll_wage_hist_wizard_tree_view')
context = self._context.copy()
if context is None:
context =
if context.get('order_by', False):
context.update('default_order': self.order_by + ' desc')
return'name': 'Wage History Report',
'view_type': 'form',
'view_mode': 'tree',
'view_id': list_view.id,
'res_model': 'trobz.payroll.wage.history',
'type': 'ir.actions.act_window',
'context': context,
'domain': domain,
另一答案
我想如果你检查上下文的类型,你会发现它是一个冻结的字典。你应该把它改成dict context = dict(self._context)
然后做你需要的所有改变然后把它变成一个冻结的字典并给
以上是关于在Odoo中更新上下文8的主要内容,如果未能解决你的问题,请参考以下文章