{"id":9100,"date":"2026-09-01T06:16:04","date_gmt":"2026-09-01T06:16:04","guid":{"rendered":"https:\/\/aboutknowledge.com\/?p=9100"},"modified":"2026-09-01T09:30:51","modified_gmt":"2026-09-01T09:30:51","slug":"odoo-xml-views-explained","status":"publish","type":"post","link":"https:\/\/aboutknowledge.com\/zh\/odoo-xml-views-explained\/","title":{"rendered":"Odoo XML Views Explained"},"content":{"rendered":"<h2>Screens are defined, not drawn<\/h2>\n<p>In many systems a screen is designed in a visual editor and saved as a picture of itself.<\/p>\n<p>In Odoo, a screen is <strong>described in a file<\/strong>. The file says: show this field here, put these three in a group, add this tab, show this button when the record is in this state.<\/p>\n<p>That description is written in <strong>XML<\/strong> \u2014 a structured text format. When you see a form in Odoo, you are seeing a rendered version of that description.<\/p>\n<p><strong>Why this matters to you even if you never open one:<\/strong> it explains why some changes are quick, why some are not, and why changes survive upgrades.<\/p>\n<h2>What a view definition contains<\/h2>\n<p>Three kinds of thing.<\/p>\n<p><strong>Structure.<\/strong> Groups, tabs, sections, columns. How the screen is laid out.<\/p>\n<p><strong>Fields.<\/strong> Which fields appear, in what order, with what labels.<\/p>\n<p><strong>Conditions.<\/strong> When things appear. A field visible only when a checkbox is ticked. A button shown only in a particular state. A field read-only after confirmation.<\/p>\n<p><strong>That third one is the useful part.<\/strong> A large share of what feels like custom logic is actually a condition in a view \u2014 &#8220;hide this unless that is set&#8221; needs no code at all.<\/p>\n<div style=\"border:1px solid #e0e0e0;border-radius:6px;padding:18px 20px;margin:24px 0;background:#fafafa\">\n<p style=\"font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:#5C3A52;font-weight:700;margin:0 0 14px\">FIGURE 1: WHAT A VIEW DEFINITION HOLDS<\/p>\n<div style=\"display:flex;flex-wrap:wrap;gap:14px\">\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#5C3A52;font-size:14px\">Structure<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>Groups, tabs and columns. How the screen is arranged.<\/li>\n<\/ul>\n<\/div>\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#5C3A52;font-size:14px\">Fields<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>Which ones appear, in what order, with what labels.<\/li>\n<\/ul>\n<\/div>\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#5C3A52;font-size:14px\">Conditions<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>When something shows, hides, or becomes read-only.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<h2>Inheritance<\/h2>\n<p>The single most important concept here, and it is the reason Odoo upgrades work.<\/p>\n<p>When a module needs to change a screen, it does not copy the whole definition and edit the copy. It writes an <strong>instruction<\/strong>: find this field in the existing view, and put my new field after it.<\/p>\n<p>Your change is a <strong>patch applied on top<\/strong>, not a replacement.<\/p>\n<p><strong>Two consequences:<\/strong><\/p>\n<p><strong>Upgrades work.<\/strong> Odoo improves the standard form; your instruction is re-applied on top. You get the improvements and keep your changes.<\/p>\n<p><strong>Several modules can change the same screen<\/strong> without conflicting, as long as their instructions do not target the same thing.<\/p>\n<p><strong>And the failure mode:<\/strong> if Odoo removes or renames the field your instruction points at, the instruction cannot find its anchor and the view breaks. This is one of the most common things that needs fixing at an upgrade \u2014 and it is usually quick.<\/p>\n<div style=\"border:1px solid #e0e0e0;border-radius:6px;padding:18px 20px;margin:24px 0;background:#fafafa\">\n<p style=\"font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:#5C3A52;font-weight:700;margin:0 0 14px\">FIGURE 2: WHY VIEW CHANGES SURVIVE UPGRADES<\/p>\n<div style=\"display:flex;flex-wrap:wrap;gap:14px\">\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#0F9E96;font-size:14px\">Inherited view<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>An instruction \u2014 &#8220;put my field after this one&#8221;<\/li>\n<li>Re-applied on top of the new version<\/li>\n<li>Breaks only if the anchor field disappears<\/li>\n<li>Several modules can coexist<\/li>\n<\/ul>\n<\/div>\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#B04A4A;font-size:14px\">Replaced view<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>A full copy of the original, edited<\/li>\n<li>Odoo&#8217;s improvements are lost<\/li>\n<li>Diverges further with every version<\/li>\n<li>Nobody can tell what changed<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<h2>Why some requests are quick and some are not<\/h2>\n<p>Knowing the shape of a view definition explains estimates.<\/p>\n<p><strong>Quick.<\/strong> Moving a field. Changing a label. Adding an existing field to a form or a list. Hiding a field under a condition. Reordering columns.<\/p>\n<p>These are edits to the view description. Nothing else changes.<\/p>\n<p><strong>Not quick.<\/strong> Adding a field that does not exist \u2014 that changes the model, and it may need logic behind it. Changing what a button does. Anything where the layout needs data that is not there.<\/p>\n<p><strong>A useful question when you ask for a change:<\/strong> does this information already exist somewhere in Odoo? If yes, it is usually a view change. If no, it is a bigger piece of work.<\/p>\n<h2>Studio and XML<\/h2>\n<p>Odoo Studio edits views by dragging. Under it, Studio is writing the same inherited view definitions.<\/p>\n<p><strong>So Studio changes are XML changes<\/strong> \u2014 made by clicking rather than by typing.<\/p>\n<p><strong>The difference is not the result. It is the record.<\/strong> A developer&#8217;s change lives in a module with a history: who made it, when, and why. A Studio change has none of that.<\/p>\n<p>For moving a field, that hardly matters. For thirty accumulated changes over two years, it matters a great deal \u2014 because eventually somebody has to work out what was changed and why, with nothing to read.<\/p>\n<h2>When views break<\/h2>\n<p>Three common causes, and what each means.<\/p>\n<p><strong>After an upgrade.<\/strong> An inherited view points at a field Odoo moved or renamed. Usually a quick fix once identified.<\/p>\n<p><strong>After installing a module.<\/strong> Two modules trying to change the same part of a screen. Also usually quick.<\/p>\n<p><strong>A field referenced that no longer exists.<\/strong> Often after a module was uninstalled, taking its fields with it.<\/p>\n<p><strong>What to send when reporting one:<\/strong> the exact error message, which screen, and what changed recently. That third item is usually the answer.<\/p>\n<div style=\"border:1px solid #e0e0e0;border-radius:6px;padding:18px 20px;margin:24px 0;background:#fafafa\">\n<p style=\"font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:#5C3A52;font-weight:700;margin:0 0 14px\">FIGURE 3: WHAT TO SEND WHEN A SCREEN BREAKS<\/p>\n<div style=\"display:flex;flex-wrap:wrap;gap:14px\">\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#5C3A52;font-size:14px\">The exact message<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>A screenshot of the full error, not a description.<\/li>\n<\/ul>\n<\/div>\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#5C3A52;font-size:14px\">Which screen and which record<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>So it can be reproduced.<\/li>\n<\/ul>\n<\/div>\n<div style=\"flex:1 1 200px;min-width:200px;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:14px 16px\">\n<p style=\"margin:0 0 8px;font-weight:700;color:#5C3A52;font-size:14px\">What changed recently<\/p>\n<ul style=\"margin:0;padding-left:18px;color:#5a5a5a;font-size:13px;line-height:1.6\">\n<li>A module, an upgrade, a Studio edit. Usually this is the answer.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<h2>What good practice looks like<\/h2>\n<p>If you commission Odoo work, four things worth expecting.<\/p>\n<p><strong>Changes are inherited, not replacements.<\/strong> Ask directly. A partner replacing whole views is storing up upgrade problems.<\/p>\n<p><strong>Custom views live in modules<\/strong>, under version control, not scattered across Studio.<\/p>\n<p><strong>Studio use is logged.<\/strong> If Studio is used, somebody keeps a written note of what and why.<\/p>\n<p><strong>Views are tested at upgrades.<\/strong> Broken inherited views are one of the most common upgrade issues, and testing catches them before users do.<\/p>\n<h2>Asking for a view change<\/h2>\n<p>Be specific about three things and you will get what you wanted:<\/p>\n<p><strong>What information.<\/strong> &#8220;The customer&#8217;s PO number.&#8221;<\/p>\n<p><strong>Where.<\/strong> &#8220;On the invoice form, next to the invoice date.&#8221;<\/p>\n<p><strong>When.<\/strong> &#8220;Only when the customer is a business, not for walk-ins.&#8221;<\/p>\n<p>That is enough to build from. &#8220;Make the invoice screen better&#8221; is not, and it produces a meeting rather than a change.<\/p>\n<h2>The short version<\/h2>\n<p>Odoo screens are <strong>descriptions in files<\/strong>, not drawings. That is why they can be patched by modules and why changes survive upgrades.<\/p>\n<p><strong>Inheritance is the key idea<\/strong> \u2014 a change is an instruction applied on top, not a copy.<\/p>\n<p>Moving and hiding existing fields is quick. Adding information that does not exist is a bigger piece of work.<\/p>\n<p>And when you ask for a change, say <strong>what, where, and under what condition<\/strong>. Three sentences saves a meeting.<\/p>\n<div style=\"border-left:4px solid #5C3A52;background:#F7F3F6;padding:18px 22px;margin:28px 0;border-radius:0 6px 6px 0\">\n<p style=\"margin:0 0 6px;font-weight:700;color:#5C3A52;font-size:16px\">Need screens that match how your team actually works?<\/p>\n<p style=\"margin:0;color:#5a5a5a\">Get in touch. Most layout changes are quicker than people expect \u2014 tell us what you want to see and where.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Screens are defined, not drawn In many systems a screen is designed in a visual editor and saved as a picture of itself. In Odoo, a screen is described in a file. The file says: show this field here, put these three in a group, add this tab, show this button when the record is [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":9101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[],"class_list":["post-9100","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-odoo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Odoo XML Views Explained: A Simple Guide | AboutKnowledge<\/title>\n<meta name=\"description\" content=\"Learn how Odoo XML views define screens through structure, fields, and conditions \u2014 and why it matters for quick, upgrade-safe customisations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aboutknowledge.com\/zh\/odoo-xml-views-explained\/\" \/>\n<meta property=\"og:locale\" content=\"zh_HK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Odoo XML Views Explained\" \/>\n<meta property=\"og:description\" content=\"Learn how Odoo XML views define screens through structure, fields, and conditions \u2014 and why it matters for quick, upgrade-safe customisations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aboutknowledge.com\/zh\/odoo-xml-views-explained\/\" \/>\n<meta property=\"og:site_name\" content=\"AboutKnowledge\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/aboutknowledge28\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-01T06:16:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-01T09:30:51+00:00\" \/>\n<meta name=\"author\" content=\"kopraveen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kopraveen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/\"},\"author\":{\"name\":\"kopraveen\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#\\\/schema\\\/person\\\/f14efbc95a95a4cec982367fb079cdf4\"},\"headline\":\"Odoo XML Views Explained\",\"datePublished\":\"2026-09-01T06:16:04+00:00\",\"dateModified\":\"2026-09-01T09:30:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/\"},\"wordCount\":1062,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/aboutknowledge.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/photo-1583339793403-3d9b001b6008.avif\",\"articleSection\":[\"Odoo\"],\"inLanguage\":\"zh-HK\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/\",\"url\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/\",\"name\":\"Odoo XML Views Explained: A Simple Guide | AboutKnowledge\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/aboutknowledge.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/photo-1583339793403-3d9b001b6008.avif\",\"datePublished\":\"2026-09-01T06:16:04+00:00\",\"dateModified\":\"2026-09-01T09:30:51+00:00\",\"description\":\"Learn how Odoo XML views define screens through structure, fields, and conditions \u2014 and why it matters for quick, upgrade-safe customisations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#breadcrumb\"},\"inLanguage\":\"zh-HK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-HK\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#primaryimage\",\"url\":\"https:\\\/\\\/aboutknowledge.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/photo-1583339793403-3d9b001b6008.avif\",\"contentUrl\":\"https:\\\/\\\/aboutknowledge.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/photo-1583339793403-3d9b001b6008.avif\",\"width\":600,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/odoo-xml-views-explained\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/aboutknowledge.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Odoo XML Views Explained\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#website\",\"url\":\"https:\\\/\\\/aboutknowledge.com\\\/\",\"name\":\"AboutKnowledge\",\"description\":\"System Integrator You Can Trust\",\"publisher\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/aboutknowledge.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-HK\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#organization\",\"name\":\"AboutKnowledge (Hong Kong) Limited\",\"url\":\"https:\\\/\\\/aboutknowledge.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-HK\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/aboutknowledge.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/aboutknowledge.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/logo.png\",\"width\":560,\"height\":256,\"caption\":\"AboutKnowledge (Hong Kong) Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/aboutknowledge28\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/104125547\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/aboutknowledge.com\\\/#\\\/schema\\\/person\\\/f14efbc95a95a4cec982367fb079cdf4\",\"name\":\"kopraveen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-HK\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1e4b2c06a01572b023ee9a6a7052f720b27e9c900dc4222fd2882d26d352bf7a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1e4b2c06a01572b023ee9a6a7052f720b27e9c900dc4222fd2882d26d352bf7a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1e4b2c06a01572b023ee9a6a7052f720b27e9c900dc4222fd2882d26d352bf7a?s=96&d=mm&r=g\",\"caption\":\"kopraveen\"},\"url\":\"https:\\\/\\\/aboutknowledge.com\\\/zh\\\/author\\\/kopraveen\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Odoo XML Views Explained: A Simple Guide | AboutKnowledge","description":"Learn how Odoo XML views define screens through structure, fields, and conditions \u2014 and why it matters for quick, upgrade-safe customisations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aboutknowledge.com\/zh\/odoo-xml-views-explained\/","og_locale":"zh_HK","og_type":"article","og_title":"Odoo XML Views Explained","og_description":"Learn how Odoo XML views define screens through structure, fields, and conditions \u2014 and why it matters for quick, upgrade-safe customisations.","og_url":"https:\/\/aboutknowledge.com\/zh\/odoo-xml-views-explained\/","og_site_name":"AboutKnowledge","article_publisher":"https:\/\/www.facebook.com\/aboutknowledge28\/","article_published_time":"2026-09-01T06:16:04+00:00","article_modified_time":"2026-09-01T09:30:51+00:00","author":"kopraveen","twitter_card":"summary_large_image","twitter_misc":{"Written by":"kopraveen","Est. reading time":"5 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#article","isPartOf":{"@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/"},"author":{"name":"kopraveen","@id":"https:\/\/aboutknowledge.com\/#\/schema\/person\/f14efbc95a95a4cec982367fb079cdf4"},"headline":"Odoo XML Views Explained","datePublished":"2026-09-01T06:16:04+00:00","dateModified":"2026-09-01T09:30:51+00:00","mainEntityOfPage":{"@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/"},"wordCount":1062,"commentCount":0,"publisher":{"@id":"https:\/\/aboutknowledge.com\/#organization"},"image":{"@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/aboutknowledge.com\/wp-content\/uploads\/2026\/09\/photo-1583339793403-3d9b001b6008.avif","articleSection":["Odoo"],"inLanguage":"zh-HK","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/","url":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/","name":"Odoo XML Views Explained: A Simple Guide | AboutKnowledge","isPartOf":{"@id":"https:\/\/aboutknowledge.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#primaryimage"},"image":{"@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/aboutknowledge.com\/wp-content\/uploads\/2026\/09\/photo-1583339793403-3d9b001b6008.avif","datePublished":"2026-09-01T06:16:04+00:00","dateModified":"2026-09-01T09:30:51+00:00","description":"Learn how Odoo XML views define screens through structure, fields, and conditions \u2014 and why it matters for quick, upgrade-safe customisations.","breadcrumb":{"@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#breadcrumb"},"inLanguage":"zh-HK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/"]}]},{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#primaryimage","url":"https:\/\/aboutknowledge.com\/wp-content\/uploads\/2026\/09\/photo-1583339793403-3d9b001b6008.avif","contentUrl":"https:\/\/aboutknowledge.com\/wp-content\/uploads\/2026\/09\/photo-1583339793403-3d9b001b6008.avif","width":600,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/aboutknowledge.com\/odoo-xml-views-explained\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/aboutknowledge.com\/"},{"@type":"ListItem","position":2,"name":"Odoo XML Views Explained"}]},{"@type":"WebSite","@id":"https:\/\/aboutknowledge.com\/#website","url":"https:\/\/aboutknowledge.com\/","name":"AboutKnowledge","description":"System Integrator You Can Trust","publisher":{"@id":"https:\/\/aboutknowledge.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aboutknowledge.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-HK"},{"@type":"Organization","@id":"https:\/\/aboutknowledge.com\/#organization","name":"AboutKnowledge (Hong Kong) Limited","url":"https:\/\/aboutknowledge.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/aboutknowledge.com\/#\/schema\/logo\/image\/","url":"https:\/\/aboutknowledge.com\/wp-content\/uploads\/2021\/11\/logo.png","contentUrl":"https:\/\/aboutknowledge.com\/wp-content\/uploads\/2021\/11\/logo.png","width":560,"height":256,"caption":"AboutKnowledge (Hong Kong) Limited"},"image":{"@id":"https:\/\/aboutknowledge.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/aboutknowledge28\/","https:\/\/www.linkedin.com\/company\/104125547"]},{"@type":"Person","@id":"https:\/\/aboutknowledge.com\/#\/schema\/person\/f14efbc95a95a4cec982367fb079cdf4","name":"kopraveen","image":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/secure.gravatar.com\/avatar\/1e4b2c06a01572b023ee9a6a7052f720b27e9c900dc4222fd2882d26d352bf7a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1e4b2c06a01572b023ee9a6a7052f720b27e9c900dc4222fd2882d26d352bf7a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1e4b2c06a01572b023ee9a6a7052f720b27e9c900dc4222fd2882d26d352bf7a?s=96&d=mm&r=g","caption":"kopraveen"},"url":"https:\/\/aboutknowledge.com\/zh\/author\/kopraveen\/"}]}},"_links":{"self":[{"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/posts\/9100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/comments?post=9100"}],"version-history":[{"count":1,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/posts\/9100\/revisions"}],"predecessor-version":[{"id":9102,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/posts\/9100\/revisions\/9102"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/media\/9101"}],"wp:attachment":[{"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/media?parent=9100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/categories?post=9100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aboutknowledge.com\/zh\/wp-json\/wp\/v2\/tags?post=9100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}