This question has been flagged
8 Replies
33197 Views

Please, help me to obtain and visualize in my view, the ID of the current user id (numerical value) complying these conditions:

  1. Visualize the ID number of the current user, not the username. Example: "Current User: 4"

  2. Odoo version 8.

Note: I have tried: self.env.user, self.env.user.id, self._uid, self.uid and always getting the username, not the numerical value.

Thanks in advance.


Avatar
Discard
Author

How can I marked this question as solved?? I can´t edit the title of the question.

Best Answer

Hi,

Just try like this, as you have to show the Id of the employee in the field, change the Many2one field to a char field and try.

Python :

'logged_user':fields.char('Current User',  default=lambda self: self.env.uid),

XML:

<field name="logged_user"/>

Then you will get like this :




Thanks

Avatar
Discard
Author

I choose this answer as the solution because it was simple and it didn´t force me to create a compute function or something like that.

Best Answer

You can use below code.

context = self._context

current_uid = context.get('uid')


Avatar
Discard

Sometimes this returns False (at least in Odoo 11)

Best Answer

Try self.env.uid

Avatar
Discard
Author

I tried it and get username, not ID (numerical).

On my Py file I have: 'logged_user':fields.many2one('res.users','Current User', default=lambda self: self.env.uid),

and on my view.xml: <field name="logged_user"/>

and as a result I visualize: Current User: Administrator

Author

Another note: each time I edit my Py file, I restart the odoo service and upgrade the module I´m working on, and everytime I restart the odoo service/upgrade the module I know it accepts the changes because of the debug logs I write.

Best Answer

Hello,

You can use below code.

context = self._context

current_uid = context.get('uid')

user = self.env['res.users'].browse(current_uid)

Hope this help you.

Best Thanks,

Ankit H Gandhi.

Avatar
Discard