Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
22245 Lượt xem

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)" ?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Tác giả

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. :)

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 8 15
6729
1
thg 9 23
2281
3
thg 4 19
3213
0
thg 3 15
3661
5
thg 5 25
33759