跳至内容
菜单
此问题已终结
2 回复
7384 查看

I have been trying for days to fix this problem. Any help would be greatly appreciated:


I have a function:

class res_users(osv.osv):
_inherit="res.users"

def change_value(self,cr,uid)
self.write(cr,uid,uid,{'token1':'a'})
return True

I need to call this from an http.Controller class:

class something(http.Controller):

def call_users(self,data):
registry = openerp.modules.registry.RegistryManager.get('test')
cr=registry.cursor()
uid=request.session.uid
registry.get('res.users').change_value(cr,uid)

cr.close()

The whole thing executes without any issues and the function does get called and the write() function even returns True but no values are not written into the database! token1 field is still empty after execution.

I tried calling the change_value() from Javascript, and it works properly. I have no clue what's going on. Can anyone please help?

形象
丢弃
最佳答案

Hi,

you need to write down your controller as like below. Might be helpful to you.

class res_users(osv.osv):

    _inherit="res.users"

    def change_value(self,cr,uid,context={})

        self.write(cr,uid,uid,{'token1':'a'})

        return True


class something(http.Controller):

def call_users(self,data):
     cr, uid, context = request.cr, request.uid, request.context
request.registry.get('res.users').change_value(cr,uid,context=context)
return True
形象
丢弃
编写者 最佳答案

Thank you ! I would never have got it. The problem, as you pointed out, was with the way I was using registry. I should not be assigning it the way I did, but use it through request.registry.

I still have no idea what the difference is. Could you please throw some light on what the concept is here or where I can read about it?

Thanks again !

形象
丢弃

In your code only the issue with cr = registry.cursor(). It is created new cursor and you have done your process with that new cursor. And also your cursor is closed before your method ends. thats it.

编写者

Oh ok. Yes, that makes sense. Thanks for clearing that up.

相关帖文 回复 查看 活动
1
3月 15
10095
3
7月 25
8579
1
6月 25
2208
2
6月 25
533
1
5月 25
877