{"id":144,"date":"2025-12-30T12:58:32","date_gmt":"2025-12-30T12:58:32","guid":{"rendered":"https:\/\/sienna-manatee-218967.hostingersite.com\/blogs\/tipo-de-modelos-en-odoo\/"},"modified":"2026-05-04T03:29:44","modified_gmt":"2026-05-04T03:29:44","slug":"tipo-de-modelos-en-odoo","status":"publish","type":"post","link":"https:\/\/exdoo.mx\/blogs\/tipo-de-modelos-en-odoo\/","title":{"rendered":"Tipo de modelos en Odoo"},"content":{"rendered":"<div style=\"background:linear-gradient(135deg,#0A7099 0%,#0d8db8 100%);color:#fff;padding:28px 26px;border-radius:16px;margin:0 0 28px;box-shadow:0 4px 16px rgba(10,112,153,.2);\">\n<div style=\"display:inline-block;background:rgba(255,255,255,.18);padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:12px;color:#fff;\">\ud83d\udcd8 ART\u00cdCULO T\u00c9CNICO<\/div>\n<p style=\"font-size:16px;line-height:1.6;margin:0;color:#fff;opacity:.95;\">El models.Model es el tipo de modelo m\u00e1s com\u00fan y utilizado en Odoo. Representa tablas de base de datos persistentes que almacenan datos de forma permanente.<\/p>\n<\/div>\n<h2 style=\"color:#0A7099;border-bottom:3px solid #F1B500;padding-bottom:8px;display:inline-block;margin-top:32px;\"><span style=\"background:#0A7099;color:#fff;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-right:10px;vertical-align:middle;\">1<\/span>models.Model &#8211; El Modelo Est\u00e1ndar<\/h2>\n<div style=\"background:linear-gradient(135deg,#0A7099 0%,#0d8db8 100%);color:#fff;padding:28px 26px;border-radius:16px;margin:0 0 28px;box-shadow:0 4px 16px rgba(10,112,153,.2);\">\n<div style=\"display:inline-block;background:rgba(255,255,255,.18);padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:12px;color:#fff;\">\ud83d\udcd8 ART\u00cdCULO T\u00c9CNICO<\/div>\n<\/div>\n<p class=\"body\" dir=\"auto\"> Caracter\u00edsticas principales:<\/p>\n<div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:14px 0;\">\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\u2713 Persistente<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Los datos se almacenan en la base de datos.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\ud83d\udccc CRUD<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Create, Read, Update, Delete<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\ud83d\udca1 Herencia<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Permite herencia de clases y prototipos.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\u2699\ufe0f Mapeo ORM<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Relaci\u00f3n objeto-relacional completa<\/p>\n<\/div>\n<\/div>\n<p class=\"body\" dir=\"auto\"> Dentro de Odoo, este tipo de modelo es usado para los registros de clientes, facturas, inventario, ventas o compras.<\/p>\n<p class=\"body\" dir=\"auto\"><em>&#8211; Ventas<\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-12-29-a-la-s-9.21.56a-a.m.-q2062SnFnh48jahU-1.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p class=\"body\" dir=\"auto\"><em>-Compras<\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-12-29-a-la-s-9.26.08a-a.m.-6ZZxxcdxn7Yc6Lzi-1.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<h2 style=\"color:#0A7099;border-bottom:3px solid #F1B500;padding-bottom:8px;display:inline-block;margin-top:32px;\"><span style=\"background:#0A7099;color:#fff;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-right:10px;vertical-align:middle;\">2<\/span>TransientModel &#8211; Modelos Transitorios<\/h2>\n<p class=\"body\" dir=\"auto\"><strong> <\/strong>El <em>models.TransientModel<\/em> es un modelo especial cuyos registros se eliminan autom\u00e1ticamente despu\u00e9s de un tiempo determinado. Es ideal para operaciones temporales como wizards o procesos batch.<\/p>\n<p class=\"body\" dir=\"auto\"> El uso m\u00e1s recurrente para este tipo de modelos son los asistentes, procesos de importaci\u00f3n o exportaci\u00f3n de datos, configuraciones temporales o informes temporales.<\/p>\n<p dir=\"auto\" class=\"body\"><span><em>&#8211; Asistente para crear facturas de venta<\/em><\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-12-29-a-la-s-9.30.36a-a.m.-KQGRkDmeZSgRIZLr-1.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\"><span><em>&#8211; Asistente para pago de facturas<\/em><\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-12-29-a-la-s-9.38.07a-a.m.-muuIhIz1PeSDE5vC-1.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<h2 style=\"color:#0A7099;border-bottom:3px solid #F1B500;padding-bottom:8px;display:inline-block;margin-top:32px;\"><span style=\"background:#0A7099;color:#fff;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-right:10px;vertical-align:middle;\">3<\/span>AbstractModel &#8211; Modelos Abstractos<\/h2>\n<p dir=\"auto\" class=\"body\"><strong> <\/strong>El <em>models.AbstractModel<\/em> es un modelo base que no crea tablas en la base de datos. Se utiliza para definir comportamientos y campos comunes que ser\u00e1n reutilizados por otros modelos.<\/p>\n<p dir=\"auto\" class=\"body\"> Caracter\u00edsticas principales:<\/p>\n<ul style=\"padding-left:22px;line-height:1.9;\">\n<li>No persistente: No crea tabla en la base de datos.<\/li>\n<li>Reutilizable: Herencia m\u00faltiple sin conflictos<\/li>\n<li>Mixins: Perfecto para crear mixins de funcionalidad.<\/li>\n<li>Sin instancias: No se pueden crear registros directamente.<\/li>\n<\/ul>\n<p dir=\"auto\" class=\"body\"> El mayor uso dado a este tipo de modelo son los reportes, funcionalidades comunes como env\u00edo de correos o logging, campos computados.<\/p>\n<p dir=\"auto\" class=\"body\"><em>&#8211; Env\u00edo de correo de facturas<\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-12-29-a-la-s-9.43.37a-a.m.-rrnm96wYb1DUwtRF-1.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\">&#8211;<em> Secuencias de facturas<\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-12-29-a-la-s-9.46.56a-a.m.-PKpIb0xkxcKgJuJT-1.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<h2 style=\"color:#0A7099;border-bottom:3px solid #F1B500;padding-bottom:8px;display:inline-block;margin-top:32px;\"><span style=\"background:#0A7099;color:#fff;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-right:10px;vertical-align:middle;\">4<\/span>models.Base &#8211; La Ra\u00edz de Todo<\/h2>\n<p dir=\"auto\" class=\"body\"> El <em>models.Base<\/em> es la clase ra\u00edz de la que heredan todos los modelos de Odoo. Rara vez se usa directamente en desarrollo de m\u00f3dulos, pero es importante entender su funcionamiento.<\/p>\n<p dir=\"auto\" class=\"body\"> Caracter\u00edsticas principales:<\/p>\n<div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:14px 0;\">\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\u2713 Clase base<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Todas las clases de modelo heredan de ella.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\ud83d\udccc Metaclass<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Define el comportamiento de creaci\u00f3n de modelos.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\ud83d\udca1 Registro autom\u00e1tico<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Registra modelos en el pool.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\u2699\ufe0f Configuraci\u00f3n ORM<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Establece la base del mapeo objeto-relacional.<\/p>\n<\/div>\n<\/div>\n<h3 style=\"color:#0A7099;margin-top:22px;font-size:16px;\">Conclusi\u00f3n<\/h3>\n<p dir=\"auto\" class=\"body\"><strong> <\/strong>Comprender los diferentes tipos de modelos en Odoo es fundamental para desarrollar aplicaciones eficientes y mantenibles. Cada tipo tiene su prop\u00f3sito espec\u00edfico:<\/p>\n<div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:14px 0;\">\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\u2713 Model<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Para datos empresariales persistentes<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\ud83d\udccc TransientModel<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Para operaciones temporales e interfaces.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\ud83d\udca1 AbstractModel<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">Para funcionalidad reutilizable y mixins.<\/p>\n<\/div>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;padding:12px 14px;border-radius:8px;\"><strong style=\"color:#0A7099;font-size:14px;\">\u2699\ufe0f Base<\/strong><\/p>\n<p style=\"margin:4px 0 0;font-size:13px;color:#374151;\">La base del sistema (uso interno).<\/p>\n<\/div>\n<\/div>\n<div style=\"background:linear-gradient(135deg,#0A7099,#0d8db8);color:#fff;padding:26px;border-radius:14px;margin-top:30px;text-align:center;\">\n<h3 style=\"color:#F1B500;margin-top:0;font-size:20px;\">\ud83d\udccc En resumen<\/h3>\n<p style=\"font-size:15px;line-height:1.7;margin:0;color:#fff;opacity:.95;\">La elecci\u00f3n correcta del tipo de modelo impacta directamente en el rendimiento, mantenibilidad y escalabilidad de tu aplicaci\u00f3n Odoo. Siempre considera si los datos deben persistir, si la funcionalidad es reutilizable o si necesitas una interfaz temporal antes de decidir qu\u00e9 tipo de modelo usar.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcd8 ART\u00cdCULO T\u00c9CNICO El models.Model es el tipo de modelo m\u00e1s com\u00fan y utilizado en Odoo. Representa tablas de base de datos persistentes que almacenan datos de forma\u2026<\/p>\n","protected":false},"author":5,"featured_media":136,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-base"],"_links":{"self":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":3,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"predecessor-version":[{"id":1937,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts\/144\/revisions\/1937"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/media\/136"}],"wp:attachment":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}