---
url: "https://vueda.dev/v3/reference/api/vue/ViewCreate.md"
title: "ViewCreate"
---

# ViewCreate

## Overview

Form view for creating a new model instance, including a page title, a sticky submit button
bar, and a FormModel that renders the configured fields.

Theme entry: [ViewCreate](/v3/reference/theming/keys/ViewCreate.md)

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-themeOverride">themeOverride</span> | `Object` |  | `null` | A partial ThemeObject keyed by component name, merged over this component's theme and provided to descendants. |
| <span id="prop-app">app</span> | `string` | yes |  | Django app label that owns the model. |
| <span id="prop-model">model</span> | `string` | yes |  | Django model name used to resolve API endpoints and configuration. |
| <span id="prop-variant">variant</span> | `string` |  | `"default"` | View variant key used to select the model configuration for this view. |
| <span id="prop-formModelVariant">formModelVariant</span> | `string` |  | `undefined` | Theme variant that the inner FormModel component receives as `variant`. Wins over a `variant` in the model config's `formProps` when passed. |
| <span id="prop-class">class</span> | `string\|array\|object` |  | `() => []` | CSS class(es) applied to the root element. |
| <span id="prop-fieldComponents">fieldComponents</span> | `object` |  | `undefined` | Map of field paths to async functions returning an override field component. |
| <span id="prop-widgetComponents">widgetComponents</span> | `object` |  | `undefined` | Map of field paths to async functions returning an override widget component. |
| <span id="prop-formProps">formProps</span> | `object` |  | `undefined` | Extra props for the inner FormModel component. They win over the model config's `formProps` and lose to this view's own form props. The `app`, `model`, and `view` keys are ignored, because the view sets them. |
| <span id="prop-fieldProps">fieldProps</span> | `object` |  | `undefined` | Map of field paths to additional props passed to the field component. Replaces a `fieldProps` map in the model config's `formProps` when passed. |
| <span id="prop-widgetProps">widgetProps</span> | `object` |  | `undefined` | Map of field paths to additional props passed to the widget component. Replaces a `widgetProps` map in the model config's `formProps` when passed. |
| <span id="prop-submitFields">submitFields</span> | `array` |  | `undefined` | Field paths sent in the create request body; falls back to the model config's submitFields when omitted or empty. |
| <span id="prop-fetchFields">fetchFields</span> | `array` |  | `undefined` | Field names the server returns in the create response; falls back to the model config's fetchFields when omitted or empty. |
| <span id="prop-redirectAfter">redirectAfter</span> | `string` |  | `"update"` | Named view to redirect to after a successful create submission. |

## Slots

| Name | Scoped | Description |
| --- | --- | --- |
| `before-fields` | yes |  |
| `form-level-chores` |  |  |
| `fields` | yes | fields Replace the default field loop. Render each field with FormModelField so the per-field slots reach it. |
| `after-fields` | yes |  |
| `targetless-action-button` | yes |  |
| `submit-button` | yes |  |
| `form-confirm-dialog-warnings` | yes |  |
| `warning-entry` | yes |  |

[Full slot reference](/v3/reference/api/vue/ViewCreate/slots.md)

## Events

### `form-object` {#event-form-object}

### `form-context` {#event-form-context}

## Source

`client/lib/views/ViewCreate.vue`
