I have this code in my module:
from openerp import api, fields, models class Partner(models.Model): _name = _inherit = "res.partner" @api.one @api.depends("project_ids") def _project_count(self): self.project_count = len(self.project_ids) project_count = fields.Integer(compute="_project_count") project_ids = fields.One2many("project.project", "partner_id")
But it yields this exception:
Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 496, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 513, in dispatch result = self._call_function(**self.params) File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 279, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 276, in checked_call return self.endpoint(*a, **kw) File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 723, in __call__ return self.method(*args, **kw) File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 372, in response_wrap response = f(*args, **kw) File "/usr/local/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 941, in call_kw return self._call_kw(model, method, args, kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 924, in _call_kw records = getattr(request.session.model(model), method)(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/http.py", line 825, in proxy result = meth(cr, request.uid, *args, **kw) File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 234, in wrapper return old_api(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/models.py", line 3085, in read result = BaseModel.read(records, fields, load=load) File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 232, in wrapper return new_api(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/models.py", line 3128, in read values[name] = field.convert_to_read(record[name], use_name_get) File "/usr/local/lib/python2.7/dist-packages/openerp/models.py", line 5411, in __getitem__ return self._fields[key].__get__(self, type(self)) File "/usr/local/lib/python2.7/dist-packages/openerp/fields.py", line 707, in __get__ self.determine_value(record) File "/usr/local/lib/python2.7/dist-packages/openerp/fields.py", line 807, in determine_value self.compute_value(recs) File "/usr/local/lib/python2.7/dist-packages/openerp/fields.py", line 767, in compute_value self._compute_value(records) File "/usr/local/lib/python2.7/dist-packages/openerp/fields.py", line 759, in _compute_value self.compute(records) File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 232, in wrapper return new_api(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 392, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/opt/odoo/extra-addons/grupoesoc/partner_projects/partner_projects.py", line 28, in _project_count self.project_count = len(self.project_ids) File "/usr/local/lib/python2.7/dist-packages/openerp/fields.py", line 707, in __get__ self.determine_value(record) File "/usr/local/lib/python2.7/dist-packages/openerp/fields.py", line 798, in determine_value record._prefetch_field(self) File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 232, in wrapper return new_api(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/models.py", line 3167, in _prefetch_field result = records.read(list(fnames), load='_classic_write') File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 232, in wrapper return new_api(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/models.py", line 3117, in read self._read_from_database(stored) File "/usr/local/lib/python2.7/dist-packages/openerp/api.py", line 232, in wrapper return new_api(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/models.py", line 3276, in _read_from_database res2 = self._columns[f].get(cr, self._model, ids, f, user, context=context, values=result) File "/usr/local/lib/python2.7/dist-packages/openerp/osv/fields.py", line 689, in get }, (tuple(record_ids),)) File "/usr/local/lib/python2.7/dist-packages/openerp/sql_db.py", line 158, in wrapper return f(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/openerp/sql_db.py", line 234, in execute res = self._obj.execute(query, params) ProgrammingError: column "partner_id" does not exist LINE 1: SELECT id, partner_id FROM project_pr... ^
Seems like I cannot relate it directly to project.project
because the field partner_id
comes from account.analytic.account
, but then how can I get the relationship between res.partner
and project.project
?