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

# ViewDestroy

## Overview

View that presents a confirmation form and displays a list of selected items to be deleted via
ModelActionForm, then sends a DELETE request when the user confirms.

Wraps the ModelActionForm in a destructive-toned card with a danger banner so the blast radius is
legible at a glance. The banner exposes a `linkedObjectCounts` prop and a `banner` slot for
surfacing cascading-delete summaries when the server provides them.

Contributes its own page title ("Delete Widget", or "Delete 3 Widgets" for a bulk destroy)
through {@link usePageTitle}, so the layout's PageTitle display renders a heading here as it
does on the other CRUD views.

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

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-iconOverride">iconOverride</span> | `Object` |  | `null` | A partial icon registry (`{ [componentName]: { [iconName]: { component, props } } }`) merged with inherited and default icon entries; scopes icon overrides to this component and its descendants. |
| <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 whose instances will be permanently deleted. |
| <span id="prop-pk">pk</span> | `string\|array` | yes |  | Primary key or array of primary keys identifying the instances to delete. |
| <span id="prop-linkedObjectCounts">linkedObjectCounts</span> | `array` |  | `[]` | Optional summary of objects that will be cascade-deleted alongside the target. Each entry is rendered as a line in the banner description (e.g. `{ verboseNamePlural: "comments", count: 12 }`). When the server does not surface this data the banner still renders with a generic warning. |
| <span id="prop-bannerTitle">bannerTitle</span> | `string` |  | `undefined` | Override the default banner title. When omitted the title is generated from the model name. |
| <span id="prop-confirmText">confirmText</span> | `string` |  | `undefined` | Optional anti-mistake phrase the operator must type before the destroy button enables. Forwarded to `ModelActionForm`, which renders a `TypedConfirmField` inside the body and gates submit until the typed value matches. Recommended for bulk destroys (the kit convention is `"delete N {model}"`). Leave undefined to skip the gate. |

## Slots

| Name | Scoped | Description |
| --- | --- | --- |
| `return-button` | yes |  |
| `view-destroy-banner` | yes | Override the danger banner shown above the selected records. |

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

## Source

`client/lib/views/ViewDestroy.vue`
