Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
22160 Zobrazení

I have defined my function like this:

    @api.multi
    def name_get(self):
        retvals = []     
        for record in self:
            if context.get('prod_form', False):
                catstring =  "[" + record.name + "] " + record.description
                retvals.append((record.id,catstring))
            else:
                retvals.append((record.id,record.name))
       
        return retvals

I've tried to use "context" by itself, as "self.context", "context.get()", etc.  I get errors all around.  How do I test to see if a context is set, if I use "self" as the only parameter?  Can I just say "def name_get(self, context=None)" ?

Avatar
Zrušit
Nejlepší odpověď

Hello Jeff, good question.

As the new API guidelines state, 'cr', 'uid' and 'context' are encapsulated in the new 'Environment' object.

Property attributes are available in the 'Environment' object for 'user' ('self.env.user') and 'lang' ('self.env.lang').

Context values can be retrieved directly as 'self.env.context.get('value_key', value_if_undefined)',  sample usage at 'res.partner'

https://github.com/odoo/odoo/blob/8.0/openerp/addons/base/res/res_partner.py#L307

Avatar
Zrušit
Autor

Thanks, Marvin! I had read over that part, but it didn't register in my brain. Your example of 'self.env.context.get()' made it click. :)

Related Posts Odpovědi Zobrazení Aktivita
1
srp 15
6674
1
zář 23
2173
3
dub 19
3131
0
bře 15
3583
5
kvě 25
33569