在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的主要内容,如果未能解决你的问题,请参考以下文章

odoo 二次开发的方法

Odoo10——self的使用

Odoo模块开发教程5-导入导出以及模块数据第一讲

odoo中self的使用

odoo12代码目录说明

Meteor 应用程序:将 TargetSDK 更新到 26 时,推送通知在 Android 8+ 上停止工作