首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Odoo :我不能将m2o字段中的域用于hr.employee字段

Odoo :我不能将m2o字段中的域用于hr.employee字段
EN

Stack Overflow用户
提问于 2021-02-12 17:13:10
回答 1查看 305关注 0票数 0

我正在使用Odoo 创建一个模型,其中包含一个雇员模型的m2o字段,并且我需要将它的域设置为特定的类别。

  1. 我创建了一个雇员,并指定了"Operario“

类别

  1. 在Odoo中创建了一个新模型,在hr.employee模型中添加了m2o字段,并添加了下一个域:["category_ids.name“、" in”、"Operario"]

  1. ,我试图在新模型中创建一个新的注册表,但是当我单击o2m字段时,如果我不是HR安全组:

的成员,就会出现这个错误。

hr.employee.public.category_ids :叶中无效字段ValueError(‘ValueError_ids.name’,' in ','Operario')

整体代码:

代码语言:javascript
复制
Traceback (most recent call last):

  File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_http.py", line 237, in _dispatch

    result = request.dispatch()

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 683, in dispatch

    result = self._call_function(**self.params)

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 359, in _call_function

    return checked_call(self.db, *args, **kwargs)

  File "/home/odoo/src/odoo/14.0/odoo/service/model.py", line 94, in wrapper

    return f(dbname, *args, **kwargs)

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 347, in checked_call

    result = self.endpoint(*a, **kw)

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 912, in __call__

    return self.method(*args, **kw)

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 531, in response_wrap

    response = f(*args, **kw)

  File "/home/odoo/src/odoo/14.0/addons/web/controllers/main.py", line 1377, in call_kw

    return self._call_kw(model, method, args, kwargs)

  File "/home/odoo/src/odoo/14.0/addons/web/controllers/main.py", line 1369, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)

  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 392, in call_kw

    result = _call_kw_model(method, model, args, kwargs)

  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 365, in _call_kw_model

    result = method(recs, *args, **kwargs)

  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 1796, in name_search

    ids = self._name_search(name, args, operator, limit=limit)

  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 1812, in _name_search

    return self._search(args, limit=limit, access_rights_uid=name_get_uid)

  File "/home/odoo/src/odoo/14.0/addons/hr/models/hr_employee.py", line 166, in _search

    ids = self.env['hr.employee.public']._search(args, offset=offset, limit=limit, order=order, count=count, access_rights_uid=access_rights_uid)

  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 4492, in _search

    query = self._where_calc(args)

  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 4248, in _where_calc

    return expression.expression(domain, self).query

  File "/home/odoo/src/odoo/14.0/odoo/osv/expression.py", line 438, in __init__

    self.parse()

  File "/home/odoo/src/odoo/14.0/odoo/osv/expression.py", line 640, in parse

    raise ValueError("Invalid field %s.%s in leaf %s" % (model._name, path[0], str(leaf)))

Exception



The above exception was the direct cause of the following exception:



Traceback (most recent call last):

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 639, in _handle_exception

    return super(JsonRequest, self)._handle_exception(exception)

  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 315, in _handle_exception

    raise exception.with_traceback(None) from new_cause

ValueError: Invalid field hr.employee.public.category_ids in leaf ('category_ids.name', 'in', 'Operario')

在错误细节的最后一行,我看到了public这个词,我不确定这是否是一个子模型,无论如何,我不知道在哪里为非HR成员设置这些权限。

EN

回答 1

Stack Overflow用户

发布于 2021-02-12 20:47:32

首先,您需要在开始时使用employee_id而不是category_ids。因为它存在于hr.employee表中,而不是hr.employee.public表中。

试试这边,

代码语言:javascript
复制
[["employee_id.category_ids.name","=","Operario"]]

另外,不要使用in操作符,而是使用=likeilike来更好地集成字符串类型的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66176169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档