Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
6060 Lượt xem

Hi!!

I'm working in odoo 13. I added a field in database models in sale.report with name "x_studio_sector" what is a Char. Then in sale.report analysis view i want to filter by that field but i can't, this error appears:

Traceback (most recent call last):
File "/opt/odoo13/odoo/odoo/http.py", line 624, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo13/odoo/odoo/http.py", line 310, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo13/odoo/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/opt/odoo13/odoo/odoo/http.py", line 669, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo13/odoo/odoo/http.py", line 350, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo13/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo13/odoo/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo13/odoo/odoo/http.py", line 915, in __call__
return self.method(*args, **kw)
File "/opt/odoo13/odoo/odoo/http.py", line 515, in response_wrap
response = f(*args, **kw)
File "/opt/odoo13/odoo/addons/web/controllers/main.py", line 1339, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo13/odoo/addons/web/controllers/main.py", line 1331, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo13/odoo/odoo/api.py", line 383, in call_kw
result = _call_kw_model(method, model, args, kwargs)
File "/opt/odoo13/odoo/odoo/api.py", line 356, in _call_kw_model
result = method(recs, *args, **kwargs)
File "/opt/odoo13/odoo/odoo/models.py", line 2187, in read_group
result = self._read_group_raw(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy)
File "/opt/odoo13/odoo/odoo/models.py", line 2312, in _read_group_raw
self._cr.execute(query, where_clause_params)
File "/opt/odoo13/odoo/odoo/sql_db.py", line 173, in wrapper
return f(self, *args, **kwargs)
File "/opt/odoo13/odoo/odoo/sql_db.py", line 250, in execute
res = self._obj.execute(query, params)
psycopg2.errors.UndefinedColumn: column sale_report.x_studio_sector does not exist
LINE 4: ...'sent')) OR "sale_report"."state" IS NULL) AND ("sale_repo...
^



I have made a module to enter the field from python, is like that:



from odoo import fields, models


class Salereport(models.Model):
_inherit = "sale.report"

x_studio_sector = fields.Char("x_studio_sector",store=True)



still not working, does anyone have any ideas? Thanks!

Ảnh đại diện
Huỷ bỏ
Tác giả

Hi Niyas,

Still not working... I have this module now:

from odoo import fields, models


class SaleReport(models.Model):
_inherit = "sale.report"

x_studio_sector = fields.Char("x_studio_sector",store=True)

x_studio_sector = fields.Float('Margin')

def _query(self, with_clause='', fields={}, groupby='', from_clause=''):

fields['margin'] = ", l.x_studio_sector"

return super(SaleReport, self)._query(with_clause, fields, groupby, from_clause)

Tác giả Câu trả lời hay nhất

Hi, finally the solution was that code:

from odoo import _, exceptions, models, api, fields


class SaleReport(models.Model):

_inherit = 'sale.report'

x_studio_sector = fields.Char(String = "x_studio_sector")

def _query(self, with_clause='', fields={}, groupby='', from_clause=''):

fields['x_studio_sector'] = ", s.x_studio_sector"
groupby += ', s.x_studio_sector'
return super(SaleReport, self)._query(with_clause, fields, groupby, from_clause)

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

You have add this field also to the query that creates this model. Do as follows,

Thanks

Ảnh đại diện
Huỷ bỏ

class SaleReport(models.Model):

_inherit = 'sale.report'

x_studio_sector = fields.Float('Margin')

def _query(self, with_clause='', fields={}, groupby='', from_clause=''):

fields['margin'] = ", l.x_studio_sector"

return super(SaleReport, self)._query(with_clause, fields, groupby, from_clause)

There was a mistake in the code i have shared, please update as follows,

fields['x_studio_sector'] = ", l.x_studio_sector"

class SaleReport(models.Model):

_inherit = 'sale.report'

x_studio_sector = fields.Float('Margin')

def _query(self, with_clause='', fields={}, groupby='', from_clause=''):

fields['margin'] = ", "" as x_studio_sector"

return super(SaleReport, self)._query(with_clause, fields, groupby, from_clause)

Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 6 21
5003
1
thg 6 20
3620
1
thg 1 22
3171
2
thg 11 20
4344
2
thg 5 24
1667