【发布时间】:2022-11-24 02:47:41
【问题描述】:
我必须在树视图中显示发票的附件数量。没关系,我正在用计算机来做。
我还必须能够过滤附有文件的发票,这就是问题所在。我无法在搜索中使用此字段,因为它没有 store=True 属性,如果我添加它,计算属性将停止工作
我正在调查,有一个 search=" " 属性可以放在字段上
我现在就是这样,但出于某种原因,它对我不起作用。
attachment_count = fields.Integer(string="QAF", compute='count_attachments', search='_search_att_count')
@api.one
def count_attachments(self):
# code
def _search_att_count(self, operator, value):
field_id = self.search([])
if operator == '=':
field_id = [x.id for x in field_id if x.attachment_count == value]
return [('id', 'in', field_id)]
我收到此错误:
Traceback (most recent call last): File
"/opt/odoo/odoo/openerp/http.py", line 546, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception) File "/opt/odoo/odoo/openerp/http.py", line 583, in dispatch
result = self._call_function(**self.params) File "/opt/odoo/odoo/openerp/http.py", line 319, in _call_function
return checked_call(self.db, *args, **kwargs) File "/opt/odoo/odoo/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs) File "/opt/odoo/odoo/openerp/http.py", line 316, in checked_call
return self.endpoint(*a, **kw) File "/opt/odoo/odoo/openerp/http.py", line 812, in __call__
return self.method(*args, **kw) File "/opt/odoo/odoo/openerp/http.py", line 412, in response_wrap
response = f(*args, **kw) File "/opt/odoo/odoo/addons/web/controllers/main.py", line 884, in
search_read
return self.do_search_read(model, fields, offset, limit, domain, sort) File "/opt/odoo/odoo/addons/web/controllers/main.py", line
905, in do_search_read
request.context) File "/opt/odoo/odoo/openerp/http.py", line 917, in proxy
result = meth(cr, request.uid, *args, **kw) File "/opt/odoo/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 5184, in search_read
record_ids = self.search(cr, uid, domain or [], offset=offset, limit=limit, order=order, context=context) File
"/opt/odoo/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 1650, in search
return self._search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count) File
"/opt/odoo/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 4687, in _search
query = self._where_calc(cr, user, args, context=context) File "/opt/odoo/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 4500, in _where_calc
where_clause, where_params = e.to_sql() File "/opt/odoo/odoo/openerp/osv/expression.py", line 1287, in to_sql
q, p = self.__leaf_to_sql(leaf) File "/opt/odoo/odoo/openerp/osv/expression.py", line 1154, in
__leaf_to_sql
Blockquote
"Invalid value %r in domain term %r" % (right, leaf) AssertionError: Invalid value account.invoice(29521, 24984, 16542,
23652, 23651, 28875, 36436, 9637, 24800
且数连续
【问题讨论】: