Skip to Content
Odoo เมนู
  • ลงชื่อเข้าใช้
  • ทดลองใช้ฟรี
  • แอป
    การเงิน
    • ระบบบัญชี
    • ระบบการออกใบแจ้งหนี้
    • ระบบบัญชีรายจ่าย
    • ระบบการจัดการข้อมูลผ่านสเปรดชีต (BI)
    • เอกสาร
    • ระบบลงลายเซ็น
    การขาย
    • ลูกค้าสัมพันธ์
    • การขาย
    • POS ร้านค้า
    • POS ร้านอาหาร
    • ระบบสมัครสมาชิก
    • การเช่า
    การจัดการเว็บไซต์
    • เครื่องมือสร้างเว็บไซต์
    • ระบบการขายออนไลน์
    • บล็อก
    • ฟอรั่ม
    • ไลฟ์แชท
    • ระบบการอบรมออนไลน์
    ซัพพลายเชน
    • คลังสินค้า
    • ระบบการผลิต
    • PLM
    • ระบบการจัดซื้อ
    • การซ่อมบำรุง
    • ระบบจัดการคุณภาพ
    ทรัพยากรบุคคล
    • ข้อมูลพนักงาน
    • ระบบสรรหาบุคลากร
    • ระบบการลา
    • การประเมิน
    • ระบบการแนะนำพนักงาน
    • ระบบจัดการยานพาหนะ
    การตลาด
    • โซเชียลมาร์เก็ตติ้ง
    • การตลาดผ่านอีเมล
    • ระบบการตลาดผ่าน SMS
    • ระบบการจัดงานอีเวนต์
    • การตลาดแบบอัตโนมัติ
    • ระบบแบบสำรวจ
    การบริการ
    • โปรเจกต์
    • ระบบบันทึกเวลา
    • ระบบการจัดการบริการภาคสนาม
    • ระบบดูแลช่วยเหลือ
    • การวางแผน
    • การนัดหมาย
    ประสิทธิผล
    • ระบบแสดงความคิดเห็น
    • ระบบการอนุมัติ
    • ไอโอที
    • VoIP
    • คลังข้อมูล
    • WhatsApp
    แอปพลิเคชันของบุคคลที่สาม Odoo สตูดิโอ แพลตฟอร์มคลาวด์ของ Odoo
  • อุตสาหกรรม
    การค้าปลีก
    • ร้านขายหนังสือ
    • ร้านขายเสื้อผ้า
    • ร้านขายเฟอร์นิเจอร์
    • ร้านขายของชำ
    • ร้านขายฮาร์ดแวร์
    • ร้านขายของเล่น
    Food & Hospitality
    • บาร์และผับ
    • ร้านอาหาร
    • อาหารฟาสต์ฟู้ด
    • Guest House
    • ตัวแทนจำหน่ายเครื่องดื่ม
    • Hotel
    อสังหาริมทรัพย์
    • Real Estate Agency
    • บริษัทสถาปัตยกรรม
    • บริษัทรับเหมา
    • การจัดการอสังหาริมทรัพย์
    • การจัดสวน
    • สมาคมเจ้าของอสังหาริมทรัพย์
    ปรึกษา
    • สำนักงานบัญชี
    • Odoo พาร์ทเนอร์
    • เอเจนซี่การตลาด
    • สำนักงานกฎหมาย
    • บริการสรรหาบุคลากร
    • การตรวจสอบและการรับรอง
    ระบบการผลิต
    • Textile
    • เหล็ก
    • เฟอร์นิเจอร์
    • อาหาร
    • Brewery
    • ของขวัญขององค์กร
    สุขภาพ & ฟิตเนส
    • ชมรมกีฬา
    • ร้านขายแว่นตา
    • ฟิตเนส
    • ผู้ประกอบวิชาชีพด้านสุขภาพ
    • ร้านขายยา
    • ร้านทำผม
    Trades
    • ช่างซ่อม
    • ฮาร์ดแวร์และการสนับสนุนด้านไอที
    • ระบบพลังงานแสงอาทิตย์
    • ช่างทำรองเท้า
    • บริการทำความสะอาด
    • HVAC Services
    อื่น ๆ
    • Nonprofit Organization
    • สำนักงานสิ่งแวดล้อม
    • ร้านเช่าป้ายโฆษณา
    • การถ่ายภาพ
    • ร้านเช่าจักรยาน
    • ตัวแทนจำหน่ายซอฟต์แวร์
    Browse all Industries
  • คอมมูนิตี้
    ศึกษา
    • บทเรียน
    • เอกสารกำกับโปรแกรม
    • การรับรอง
    • การฝึกอบรม
    • บล็อก
    • พอดแคสต์
    เพิ่มศักยภาพให้กับการศึกษา
    • โปรแกรมการศึกษา
    • Scale Up! Business Game
    • เยี่ยมชม Odoo
    รับซอฟต์แวร์
    • ดาวน์โหลด
    • เปรียบเทียบรุ่น
    • เผยแพร่
    ทำงานร่วมกัน
    • Github
    • ฟอรั่ม
    • ระบบการจัดงานอีเวนต์
    • การแปล
    • ร่วมเป็นพาร์ทเนอร์
    • Services for Partners
    • ลงทะเบียนเพื่อสร้างบัญชีบริษัทของคุณ
    รับบริการ
    • ค้นหาพาร์ทเนอร์
    • ค้นหานักบัญชี
    • พบกับที่ปรึกษา
    • บริการติดตั้งระบบเพื่อใช้งาน
    • ข้อมูลอ้างอิงลูกค้า
    • การสนับสนุน
    • อัปเกรด
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    รับการสาธิต
  • ราคา
  • ช่วยเหลือ

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • ลูกค้าสัมพันธ์
  • e-Commerce
  • ระบบบัญชี
  • สินค้าคงคลัง
  • PoS
  • โปรเจกต์
  • MRP
All apps
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
All Posts คน เหรียญรางวัล
แท็ก (View all)
odoo accounting v14 pos v15
เกี่ยวกับฟอรั่มนี้
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
All Posts คน เหรียญรางวัล
แท็ก (View all)
odoo accounting v14 pos v15
เกี่ยวกับฟอรั่มนี้
ช่วยเหลือ

How can I pass context to a one2many field?

ติดตาม

รับการแจ้งเตือนเมื่อมีกิจกรรมในโพสต์นี้

คำถามนี้ถูกตั้งค่าสถานะ
one2manyfieldcontextstock_location
19 ตอบกลับ
71112 มุมมอง
อวตาร
Stefan Reisich

I have the following code:

class product_product(osv.osv):
    _name = 'product.product'
    _inherit = 'product.product'

    def test(self, cr, uid, ids, field_names=None, arg=None, context=None):
        result = {}
        if not ids: return result

        context['only_with_stock'] = True

        for id in ids:
            context['product_id'] = id
            location_obj = self.pool.get('stock.location')
            result[id] = location_obj.search(cr, uid, [('usage', '=', 'internal')], context=context)

        return result


    _columns = {
        'test': fields.function(test, type='one2many', relation='stock.location', string='Stock by Location'),
    }

product_product()

and:

<openerp>
    <data>

        <act_window
            context="{'product_id': active_id, 'only_with_stock': True}"
            id="act_stock_product_location_open"
            name="Stock by Location"
            res_model="stock.location"
            src_model="product.product"/>


        <record id="nfx_view_normal_procurement_locations_form" model="ir.ui.view">
            <field name="name">nfx_product.normal.procurement.locations.inherit</field>
            <field name="model">product.product</field>
            <field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
            <field name="arch" type="xml">
                <group name="lot" position="before" version="7.0">
                    <group string="Locations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
                        <field name="test" nolabel="1" context="{'product_id': active_id, 'only_with_stock': True}">
                            <tree string="Stock Location">
                                <field name="complete_name"/>
                                <field name="stock_real"/>
                                <field name="stock_virtual" invisible="'product_id' not in context"/>
                            </tree>
                        </field>
                    </group>
                </group>

            </field>
        </record>

    </data>
</openerp>

The test() function works well. It creates a one2many field with the stock locations. The complete_name field in the treeview is ok but the stock_real and stock_virtual fields are empty(0.00). I think because this fields calls _product_value() from stock/stock.py and _product_value() needs the product_id passed in the context. But it is not passed.

image description

What I'm doing wrong?

2
อวตาร
ละทิ้ง
Sehrish

by using context: https://learnopenerp.blogspot.com/2018/01/get-parent-form-value-in-one2many-form.html

อวตาร
Mohamed Magdy
คำตอบที่ดีที่สุด

I wish this may help you:

    <field name="test" nolabel="1" context="{'default_product_id': active_id, 'default_only_with_stock': True}">

Regards,

7
อวตาร
ละทิ้ง
Cyrus Waithaka

This worked like a charm. adding default_ before the field name eg default_product_id instead of product_id. Same can also be used to pass context in "create and edit" pop up as seen in the hr_expense.view_expenses_form view where groups_ref fields are set by context. if you try to create a new user from the expense form, some access right groups are automatically set.

อวตาร
Stefan Reisich
ผู้เขียน คำตอบที่ดีที่สุด

I have found the solution. The right way is indeed:

<field name="test" nolabel="1" context="{'product_id': active_id, 'only_with_stock': True}">

but there is a bug in OpenERP 7. The context is not passed. The bug is fixed and needs to be released. You can see and follow the fix here:

https://code.launchpad.net/~openerp-dev/openerp-web/7.0-opw-584668-cpa

On this page you can see the modifications and fix it youself until the oficial fix is released.

3
อวตาร
ละทิ้ง
Sathors

I have tried to download this branch and use it as my web folder, updated all the modules of my database, but it doesn't resolve the problem... Am I supposed to install all of OpenERP once more ?

อวตาร
DNTQ
คำตอบที่ดีที่สุด

Pls. try with line <field name="test" nolabel="1" context="{'product_id': active_id, 'only_with_stock': True}" options="{"always_reload": True}">

3
อวตาร
ละทิ้ง
Stefan Reisich
ผู้เขียน

sorry, no difference...

อวตาร
Andreas Brueckl
คำตอบที่ดีที่สุด

With the line

<field name="test" nolabel="1" context="{'product_id': id, 'only_with_stock': True}">

you try to set the "product_id" to id. In this case the field id must be part of your view. Try to add an invisible field with the id:

<field name="id" invisible="1"/>
2
อวตาร
ละทิ้ง
Cyril Gaspard (GEM)

Hi, you can use active_id instead of id, with active_id, no need to add a field id invisible. Bye

Stefan Reisich
ผู้เขียน

both not working... :-(

Stefan Reisich
ผู้เขียน

I thought id was right because id is given in the URL...

Andreas Brueckl

Strange, the view is correct, since I saw this also in the account-addon. The problem must be in the function. You should remove method=True from the definition since this was only for v6.0. what is the value of the context within your function?

Stefan Reisich
ผู้เขียน

my function test is working well. It has the product_id in the context. The problem is the context is not passed to the fields <field name="stock_real"/> and <field name="stock_virtual"/>.

Andreas Brueckl

try to remove method=True. Please update your question, because there you are using the field "test" and not "stock_real"

Stefan Reisich
ผู้เขียน

I'm sorry, I have tested it again. My function test don't get's the product_id passed in the context too. As you can see above the product_id is added to the context from ids. So the search in my function test is working well but because the product_id is not passed from <field name="test" nolabel="1" context="{'product_id': id( or active_id), 'only_with_stock': True}">, the sub fields <field name="stock_real"/> and <field name="stock_virtual"/> don't has the product_id in their context...

Stefan Reisich
ผู้เขียน

method=True removed. Has no effect too... :-(

Andreas Brueckl

Ok. I would just try <field name="stock_real" context="{'product_id': parent.id}"/>

Stefan Reisich
ผู้เขียน

no, don't work too. I even have tried <field name="stock_real" context="{'product_id': 49}"/> with no effect...

Andreas Brueckl

Then I do not have any ideas. Maybe it is not possible in that special case where the fields of one2many objects are also function fields which require the context

สนุกกับการพูดคุยนี้ใช่ไหม? เข้าร่วมเลย!

สร้างบัญชีวันนี้เพื่อเพลิดเพลินไปกับฟีเจอร์พิเศษและมีส่วนร่วมกับคอมมูนิตี้ที่ยอดเยี่ยมของเรา!

ลงชื่อ
Related Posts ตอบกลับ มุมมอง กิจกรรม
Get active id value of One2many record which Clicked
one2many context odoo
อวตาร
อวตาร
1
ก.ค. 25
2620
One2many from other model
one2many cache context
อวตาร
อวตาร
2
ก.ค. 23
2437
Why context is not passed to real_stock field?
field context stock_real
อวตาร
อวตาร
2
มี.ค. 15
7582
Adding Dynamic values to Selection field based on another field in odoo 12. Field is present in one2many field
one2many selection context odoo12.0
อวตาร
อวตาร
อวตาร
2
ก.ย. 23
6493
Many2many domain doesn't work in form view shown by adding a line in an One2many field
domain one2many many2many context
อวตาร
0
มี.ค. 23
2891
คอมมูนิตี้
  • บทเรียน
  • เอกสารกำกับโปรแกรม
  • ฟอรั่ม
โอเพนซอร์ส
  • ดาวน์โหลด
  • Github
  • Runbot
  • การแปล
บริการ
  • โฮสติ้ง odoo.sh เซิร์ฟเวอร์
  • การสนับสนุน
  • อัปเกรด
  • การพัฒนาที่กำหนดเอง
  • การศึกษา
  • ค้นหานักบัญชี
  • ค้นหาพาร์ทเนอร์
  • ร่วมเป็นพาร์ทเนอร์
เกี่ยวกับเรา
  • บริษัทของเรา
  • ทรัพย์สินในรูปของเครื่องหมายการค้า
  • ติดต่อเรา
  • งาน
  • ระบบการจัดงานอีเวนต์
  • พอดแคสต์
  • บล็อก
  • ลูกค้า
  • กฎหมาย • ความเป็นส่วนตัว
  • ความปลอดภัย
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo เป็นชุดแอปธุรกิจแบบเปิดที่ครอบคลุมทุกความต้องการของบริษัทของคุณ อาธิ CRM eCommerce ระบบบัญชี ระบบสินค้าคงคลัง ระบบการขายหน้าร้าน โปรเจกต์ และ อีกมากมาย

ความเหนือกว่าอันเป็นเอกลักษณ์ของ Odoo คือการใช้งานที่ง่ายดายและผสานการทำงานอย่างสมบูรณ์แบบในเวลาเดียวกัน

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now