> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.omni.co/feedback

```json
{
  "path": "/modeling/views/parameters/template",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# template

> Marks a view as a template only accessible through `extends` and disables model validation.

Marks a view as an abstract template. Template views cannot be used directly — they must be extended by another view using the [`extends`](/modeling/views/parameters/extends) property. This enables reusable view patterns and inheritance.

Template views have relaxed model validation, meaning missing columns will not cause errors. This allows you to define abstract structures that are completed by the extending view. Refer to this [community article](https://community.omni.co/t/how-can-i-share-logic-across-multiple-models-hub-and-spoke/150) for more information.

When a non-template view extends a template view, it inherits all of the template's attributes and can override or add to them.

## Syntax

```yaml theme={null}
template: true/false
```

## Properties

<ParamField path="template" type="boolean">
  Controls whether the view is treated as an abstract template. When set to `true`, the view cannot be used directly and must be extended by another view. Omni will also disable model validation for the view.
</ParamField>

## Examples

```yaml title="template_view" theme={null}
template: true

required_access_grants: [ marketing ]
```

```yaml title="extended_view" theme={null}
extends: [template_view]

# Inherits required_access_grants from template_view
# Can override or add additional attributes
required_access_grants: [ sales ]
```
