Quantcast
Channel: OpenERP Help - Individual question feed
Viewing all articles
Browse latest Browse all 69

how do i save a m2m field?

$
0
0
I would like to select and save a group of partners as a many2many field, and then use that field to generate a set of actions. I can get the XML to display and select the partners that i want to save, but i cannot get the m2m field to write in the database. I know that i have to write a create function to save the m2m relationship in my custom module, but i cannot figure out what i am doing wrong. Can someone please point me to an example of how to write a create function? I am getting the following error: Client Traceback (most recent call last): File "/opt/openerp/web/addons/web/http.py", line 204, in dispatch response["result"] = method(self, **self.params) File "/opt/openerp/web/addons/web/controllers/main.py", line 1129, in call_kw return self._call_kw(req, model, method, args, kwargs) File "/opt/openerp/web/addons/web/controllers/main.py", line 1121, in _call_kw return getattr(req.session.model(model), method)(*args, **kwargs) File "/opt/openerp/web/addons/web/session.py", line 43, in proxy result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw) File "/opt/openerp/web/addons/web/session.py", line 31, in proxy_method result = self.session.send(self.service_name, method, *args) File "/opt/openerp/web/addons/web/session.py", line 104, in send raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last): File "/opt/openerp/web/addons/web/session.py", line 90, in send return openerp.netsvc.dispatch_rpc(service_name, method, args) File "/opt/openerp/server/openerp/netsvc.py", line 293, in dispatch_rpc result = ExportService.getService(service_name).dispatch(method, params) File "/opt/openerp/server/openerp/service/web_services.py", line 626, in dispatch res = fn(db, uid, *params) File "/opt/openerp/server/openerp/osv/osv.py", line 188, in execute_kw return self.execute(db, uid, obj, method, *args, **kw or {}) File "/opt/openerp/server/openerp/osv/osv.py", line 131, in wrapper return f(self, dbname, *args, **kwargs) File "/opt/openerp/server/openerp/osv/osv.py", line 197, in execute res = self.execute_cr(cr, uid, obj, method, *args, **kw) File "/opt/openerp/server/openerp/osv/osv.py", line 185, in execute_cr return getattr(object, method)(cr, uid, *args, **kw) File "/opt/openerp/server/openerp/osv/orm.py", line 4148, in write for sub_ids in cr.split_for_in_conditions(ids): File "/opt/openerp/server/openerp/sql_db.py", line 258, in split_for_in_conditions return tools.misc.split_every(self.IN_MAX, set(ids)) TypeError: unhashable type: 'dict' How do i properly save a m2m field? Here is my test code: m2m_test.py import netsvc import tools import time from osv import fields from osv import osv import pooler import tools from tools.translate import _ from base_calendar import base_calendar import logging # # # class m2m_test(osv.osv): _name = "m2m.test" _description = "Many2Many Test" _columns = { 'name' : fields.char('M2M Test',size=64,required=True,select="1"), 'partner_id': fields.related('partner_id', select=True, type= 'many2many', relation='res.partner', string='Customer'), } _defaults = { } def create(self, cr, uid, values, context=None): if context is None: context = {} newid = values return newid o2m_test() m2m_test.xml m2m.test.formm2m.testform
m2m.test.treem2m.testformMany 2 Many Testir.actions.act_windowm2m.testformtree,form20

Click to define a new Many2Many Test


Viewing all articles
Browse latest Browse all 69

Trending Articles