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?