2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Many2many क्षेत्राणि Many2one क्षेत्राणां सदृशानि सन्ति यतः ते मॉडल् मध्ये नूतनान् सम्बन्धान् स्थापयन्ति ।अस्तिओडू १६ , भवान् many2many क्षेत्रैः समूहयितुं न शक्नोति यतोहि many2many अभिलेखानां उपयोगेन कोऽपि अभिलेखः चयनं कर्तुं शक्यते । यदा भवान् many2many field इत्यस्य उपयोगेन filter द्वारा group ददाति तदा भवान् assertion error प्राप्स्यति ।
Odoo 16 मध्ये Many2Many क्षेत्रसमूहस्य उपयोगः कथं करणीयः इति परिचयः。
अत्र अहं विद्यमानं tag_ids many2many इति क्षेत्रस्य उपयोगं करिष्यामि । यथा निम्नलिखितसङ्केते दर्शितम् अस्ति : १.
.प्य्
tag_ids = fields.Many2many('crm.tag', 'sale_order_tag_rel', 'order_id', 'tag_id', string='Tags')
.xml
- <record id="view_sales_order_filter" model="ir.ui.view">
- <field name="name">sale.order.view.list.inherit.module.name</field>
- <field name="model">sale.order</field>
- <field name="inherit_id" ref="sale.view_sales_order_filter"/>
- <field name="arch" type="xml">
- <xpath expr="//search/group/filter[@name='customer']" position="after">
- <separator/>
- <filter name="tag_ids" string="Tags" domain="[]" context="{'group_by': 'tag_ids'}"/>
- <separator/>
- </xpath>
- </field>
- </record>
group_by filtering कृते Many2many इति क्षेत्रस्य उपयोगं कर्तुं शक्नुवन्ति । यदि वयं क्षेत्राणि गणयामः तर्हि एतत् कार्यं करोति, परन्तु यदि many2many क्षेत्रे मूल्यं 2 अस्ति, तर्हि इदं tag1, tag2 इत्यादिभिः अल्पविरामेन (,) इत्यनेन प्रदर्शितं भविष्यति यतोहि एतत् वर्णक्षेत्रम् अस्ति
.प्य्
- product_tags = fields.Char(string='Tags', compute='_get_tags', store=True)
- @api.model
- @api.depends('tag_ids')
- def _get_tags(self):
- for rec in self:
- if rec.tag_ids:
- product_tags = ','.join([p.name for p in rec.tag_ids])
- else:
- product_tags = ''
- rec.product_tags = product_tags
.xml
- <record id="view_sales_order_filter" model="ir.ui.view">
- <field name="name">sale.order.view.list.inherit.module.name</field>
- <field name="model">sale.order</field>
- <field name="inherit_id" ref="sale.view_sales_order_filter"/>
- <field name="arch" type="xml">
- <xpath expr="//search/group/filter[@name='customer']"
- position="after">
- <separator/>
- <filter name="tag_ids" string="Tags" domain="[]"
- context="{'group_by': 'product_tags'}"/>
- <separator/>
- </xpath>
- </field>
- </record>
- <record id="sale_view_form_custom" model="ir.ui.view">
- <field name="name">ale.order.view.form.inherit.module.name</field>
- <field name="model">sale.order</field>
- <field name="inherit_id" ref="sale.view_order_form"/>
- <field name="arch" type="xml">
- <xpath expr="//field[@name='payment_term_id']" position="after">
- <field name="product_tags"/>
- </xpath>
- </field>
- </record>
अत्र वयं Char field product_tags योजितवन्तः । इदं गणितं क्षेत्रं यस्मिन् लेबलनाम सम्बद्धं भवति ।
भवान् द्रष्टुं शक्नोति यत् वयं XML सञ्चिकायां tag इति समूहीकरण-छिद्रं प्रदत्तवन्तः । यदा वयं एतैः विक्रय-आदेशैः समूहीकरणं कर्तुं प्रयत्नशीलाः स्मः तदा अधः दृश्यते ।
तथैव वयं many2many क्षेत्राणां कृते groupby योजयितुं शक्नुमः ।
तदनन्तरं many2many क्षेत्रस्य कृते कथं फ़िल्टरं योजयितुं शक्यते इति पश्यामः ।
many2many क्षेत्रात् मूल्यं गणयितुं भवान् वैकल्पिकं Many2Many क्षेत्रं निर्मातुम् अर्हति । एतत् प्रदर्शयितुं उदाहरणं प्रदास्यामि। अस्मिन् क्षेत्रे store=True इति निर्दिष्टव्यम् ।
.प्य्
- newfield_id = fields.Many2one('example_ids', compute=_compute_newfield_id, store=True)
- @api.depends('example_ids')
- def _compute_newfield_id(self):
- for record in self:
- record.newfield_id = record.example_ids and record.example_ids[0] or False
.xml
<field name="newfield_id" string="Example" filter_domain="[(newfield_id,'ilike', self)]"/>
आवश्यकतानुसारं डोमेननाम दातुं शक्नुवन्ति यतः रक्षितक्षेत्रेषु सुलभतया अन्वेष्टुं शक्यते । यदि भवान् इच्छति तर्हि स्थानस्य xpath समावेशयितुं शक्नोति ।
Odoo 16 इत्यस्मिन् ग्राहकपोर्टलरूपेषु बहु-बहुक्षेत्राणां निर्माणस्य विषये अधिकं ज्ञातुं