Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
663 Widoki

Hi everyone,

I'm trying to set up different fields in Odoo contacts depending on whether a contact is a company or an individual.

Specifically, if the contact is a company, I would like to display additional fields such as founding date, industry, etc. These fields should not appear at all when the contact is an individual.

Thanks in advance!

Awatar
Odrzuć

This app - https://apps.odoo.com/apps/modules/18.0/partner_custom_fields - lets you add different fields for different custom types. These custom fields are not restricted by the individuals/companies, but you may use your own typology. So, the app might be helpful to your goals.

Najlepsza odpowiedź


Correct approach:

  • For fields visible only for companies: [('is_company', '=', False)] in the invisible attribute
  • For fields visible only for individuals: [('is_company', '=', True)] in the invisible attribute

The invisible attribute hides fields when the condition is TRUE. So:

  • [('is_company', '=', False)] means "hide when NOT a company" = "show only for companies"
  • [('is_company', '=', True)] means "hide when IS a company" = "show only for individuals"
  • Hope it helps you.


Awatar
Odrzuć
Najlepsza odpowiedź

Hi,

You can achieve this in Odoo by using field visibility conditions based on the is_company boolean field in the res.partner model.


Sample Code:

Python:

from odoo import fields, models

class ResPartner(models.Model):
_inherit = 'res.partner'

founding_date = fields.Date(string="Founding date")
industry = fields.Char(string="Industry")

XML:

<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.view.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='vat']" position="after">
<field name="founding_date" invisible="not is_company"/>
<field name="industry" invisible="not is_company"/>
</xpath>
</field>
</record>

Result:

In Company:

In Individual:


Hope it helps.

Awatar
Odrzuć
Najlepsza odpowiedź

Hi Elvira,

You can set this up either through Odoo Studio or through Code Customization by using invisible attribute on the fields So, for the fields you want to be visible only if the contact is a company ,set "[('is_company', '=', False)]" in invisible attributes and for fields you want to be visible only if the contact is individual, set "[('is_company', '=', True)]".

We hope this helps! In case you need further assistance, you can reach out to us!

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
kwi 25
440
1
cze 25
1127
1
maj 25
1415
3
mar 25
2062
1
mar 25
1558