Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
4241 มุมมอง

I want to populate the product category field of product view when arriving from a view of my module.

Apparently not as streight forward as I thought :( Using default_categ_id in context require a database id and I want to use the XML id! The "ref" function cannot be use inside the context unfortunately...

So my solution is to put a computed field on the origin view which will grab the database id from the XML id so it will be available to pass... I now struggle to make this damn computed fields to work!!

Here is the code of the model

class PickAndPack(models.Model):
_name = "picking"
_inherit = ['complex.charges']
_description = "Picking & Packing item"

def _get_picking_categ_id(self):
return self.env.ref('complex_charges_picking.product_category_picking_fee').id

picking_categ_id = fields.Integer(compute='_compute_picking_categ_id')

@api.one
def _compute_picking_categ_id(self):
        print "test picking_categ_id: ", self._get_picking_categ_id()
self.picking_categ_id = self._get_picking_categ_id()


The view is fairly simple... 

I added the computed field like:

<field name="picking_categ_id"/>

The print "test picking_categ_id: " never trigger...  so picking_categ_id stay at 0.


What do I do wrong... I don't want to store this value in the record, that would be so stupid :(

อวตาร
ละทิ้ง
ผู้เขียน คำตอบที่ดีที่สุด

I removed @api.one and not it works!

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
0
พ.ย. 21
3163
1
มี.ค. 15
5147
0
ก.พ. 23
3527
4
ม.ค. 24
19804
1
ก.ค. 20
7297