res.country : champs, relations et API
Le modèle res.country (« Pays ») est un modèle persistant déclaré par le module Base, puis enrichi par 5 autres modules. Il expose 24 champs, dont 18 déclarés directement sur le modèle ; 68 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 19.
Fiche d'identité
- Nom technique
res.country- Libellé
- Pays
- Type
- Persistant (models.Model)
- Table SQL
res_country- Module d'origine
- Base (
base) - Étendu par
- payment, base_address_extended, base_vat, point_of_sale, pos_self_order
- Tri par défaut (_order)
name, id- Hérite de (mixins)
- pos.load.mixin
Champs du modèle
18 champs propres, 0 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
24 champs affichés sur 24
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| address_format | Mise en page des rapports Display format to use for addresses belonging to this country. You can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus %(state_name)s: the name of the state %(state_code)s: the code of the state %(country_name)s: the name of the country %(country_code)s: the code of the country | text | |
| address_view_id | Vue de saisie Utilisez ce champ pour remplacer la méthode habituelle de codage d'une adresse complète. Notez que le champ address_format permet de modifier le format d'affichage des adresses (dans les rapports par exemple), tandis que ce champ permet de modifier le mode de saisie des adresses. | many2one | |
| code | Code du pays The ISO country code in two chars. You can use this field for quick search. | char | requis |
| country_group_codes | Codes des groupes de pays | json | calculé |
| country_group_ids | Groupes de pays | many2many | |
| currency_id | Devise | many2one | |
| enforce_cities | Imposer les villes Cochez cette case pour vous assurer que chaque adresse créée dans ce pays a une 'Ville' choisie dans la liste des villes du pays. | boolean | ajouté par Adresses longues ( |
| has_foreign_fiscal_position | Possède une position fiscale étrangère | boolean | calculé ajouté par Validation du montant de TVA ( |
| image_url | Drapeau URL de l'image de drapeau statique | char | calculé |
| is_mercado_pago_supported_country | Pays pris en charge par Mercado Pago | boolean | calculé ajouté par Moteur de paiement ( |
| is_stripe_supported_country | Est un pays pris en charge par Stripe | boolean | calculé ajouté par Moteur de paiement ( |
| name | Nom du pays | char | requistraduisible |
| name_position | Position du nom du client Détermine si le nom du client ou de l'entreprise doit être placé avant ou après l'adresse. | selection | Valeurs : |
| phone_code | Code d'appel du pays | integer | |
| state_ids | États | one2many | inverse : |
| state_required | État requis | boolean | |
| vat_label | Libellé TVA Utilisez ce champ si vous souhaitez modifier l'étiquette TVA. | char | traduisible |
| zip_required | Code postal requis | boolean | |
| create_date | Créé le | datetime | lecture seuleautomatique |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- ir.ui.view : address_view_id
- res.country.group : country_group_ids
- res.country.state : state_ids
- res.currency : currency_id
Champs d'autres modèles qui pointent ici
- account.account.tag : country_id
- account.fiscal.position : company_country_id, country_id
- account.invoice.report : country_id
- account.move : tax_country_id
- account.move.line : commercial_partner_country
- account.report : country_id
- account.report.external.value : report_country_id
- account.tax : country_id
- account.tax.group : country_id
- base.document.layout : country_id
- crm.activity.report : country_id
- crm.iap.lead.mining.request : country_ids
- crm.lead : country_id
- crm.partner.report.assign : country_id
- crm.reveal.rule : country_ids
- delivery.carrier : country_ids
- discuss.channel : country_id
- event.event : country_id
- event.sponsor : country_id
- fleet.vehicle : country_id
- hr.attendance.overtime.ruleset : country_id
- hr.contract.type : country_id
- hr.departure.reason : country_id
- hr.employee : company_country_id, country_of_birth
- hr.leave.type : country_id
- hr.payroll.structure.type : country_id
- hr.version : company_country_id, country_id, private_country_id
- hr.work.entry : country_id
- hr.work.entry.type : country_id
- im_livechat.channel.member.history : session_country_id
- im_livechat.channel.rule : country_ids
- im_livechat.report.channel : country_id
- ir.module.module : country_ids
- link.tracker.click : country_id
- lunch.supplier : country_id
- mail.guest : country_id
- mailing.contact : country_id
- payment.method : supported_country_ids
- payment.provider : available_country_ids, mercado_pago_account_country_id, paymob_account_country_id
- payment.transaction : partner_country_id
- et 19 autres
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 19 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/res.country/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","code","address_view_id","currency_id","address_format"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/res.country/search_read",
headers=headers,
json={"domain": [], "fields": ["name","code","address_view_id","currency_id","address_format"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/res-country">res.country (Odoo 19.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 19 : ORM API
- Documentation Odoo 19 : API externe JSON-2
Données vérifiées le 23 septembre 2026 · Odoo 19.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.