Mixinas de edición

Los siguientes mixinas se utilizan para construir las vistas de edición de Django:

Nota

Ejemplos de cómo estas se combinan en vistas de edición se pueden encontrar en la documentación sobre Los textos editores genericos.

FormMixin

class django.views.generic.edit.FormMixin

Una clase mixina que proporciona facilidades para crear y mostrar formularios.

Mixins

Métodos y Atributos

initial

Un diccionario que contiene los datos iniciales para el formulario.

form_class

La clase de formulario a instanciar.

success_url

La URL a la que redirigir cuando el formulario se procesa correctamente.

prefix

El prefijo (prefix) para el formulario generado.

get_initial()

Recuperar los datos iniciales para el formulario. Por defecto, devuelve una copia de initial.

get_form_class()

Recuperar la clase de formulario a instanciar. Por defecto form_class.

get_form(form_class=None)

Instancia un objeto de form_class utilizando get_form_kwargs(). Si no se proporciona form_class, se utilizará get_form_class().

get_form_kwargs()

Construye los argumentos clave necesarios para instanciar el formulario.

El argumento initial se establece en get_initial(). Si la solicitud es un POST o PUT, también se proporcionarán los datos de la solicitud (request.POST y request.FILES).

get_prefix()

Determina el prefijo (prefix) para el formulario generado. Por defecto devuelve prefix.

get_success_url()

Determine la URL a la que redirigir cuando el formulario se valida correctamente con éxito. Devuelve por defecto success_url.

form_valid(form)

Redirecciona a get_success_url().

form_invalid(form)

Rendere una respuesta, proporcionando el formulario inválido como contexto.

get_context_data(**kwargs)

Llama a get_form() y agrega el resultado al contexto de datos con el nombre “form”.

ModelFormMixin

class django.views.generic.edit.ModelFormMixin

Un mixin de formularios que proporciona facilidades para trabajar con un ModelForm, en lugar de un formulario independiente.

Dado que este es una subclase de SingleObjectMixin, las instancias de este mixin tienen acceso a los atributos model y queryset, que describen el tipo de objeto con el que se está manipulando el ModelForm.

Si especificas tanto los atributos fields como form_class, se levantará una excepción ImproperlyConfigured.

Mixins

Métodos y Atributos

model

Una clase de modelo. Puede proporcionarse explícitamente, de lo contrario se determinará examinando self.object o queryset.

fields

Una lista de nombres de campos. Se interpreta de la misma manera que el atributo Meta.fields de ModelForm.

Este es un requerido si estás generando la clase de formulario automáticamente (por ejemplo, utilizando model). Omitir este atributo dará como resultado una excepción ImproperlyConfigured.

success_url

La URL a la que redirigir cuando el formulario se procesa correctamente.

Puede contener formato de cadena de diccionario, que se interpolará contra los atributos del campo del objeto. Por ejemplo, podrías utilizar success_url="/polls/{slug}/" para redirigir a una URL compuesta por el campo slug en un modelo.

get_form_class()

Recupera la clase de formulario para instanciarla. Si se proporciona form_class, esa clase se utilizará. De lo contrario, se instanciará un ModelForm utilizando el modelo asociado con el queryset o con el model, dependiendo de cuál de los atributos esté proporcionado.

get_form_kwargs()

Agrega la instancia actual (self.object) a las claves de formulario estándar del get_form_kwargs().

get_success_url()

Determina la URL para redirigir cuando el formulario se valide correctamente. Devuelve django.views.generic.edit.ModelFormMixin.success_url si está proporcionado; en caso contrario, intenta utilizar get_absolute_url() del objeto.

form_valid(form)

Guarda la instancia de formulario, establece el objeto actual para la vista y redirige a get_success_url().

form_invalid(form)

Rendere una respuesta, proporcionando el formulario inválido como contexto.

ProcessFormView

class django.views.generic.edit.ProcessFormView

Un mixin que proporciona flujo básico HTTP GET y POST.

Nota

Se llama “ProcessFormView” e hereda directamente de django.views.generic.base.View, pero se rompe si se utiliza independientemente, por lo que es más un mixin.

Extiende

Métodos y Atributos

get(request, *args, **kwargs)

Renders a respuesta utilizando un contexto creado con get_context_data().

post(request, *args, **kwargs)

Construye un formulario, verifica la validez del formulario y maneja según corresponda.

put(*args, **kwargs)

También se maneja la acción PUT y pasa todos los parámetros a través de post().

DeletionMixin

class django.views.generic.edit.DeletionMixin

Habilita el manejo de la acción HTTP DELETE.

Métodos y Atributos

success_url

La URL a redirigir cuando el objeto nominado ha sido eliminado con éxito.

success_url puede contener formato de cadena de diccionario, que se interpolará contra las atributos de campo del objeto. Por ejemplo, podrías utilizar success_url="/padre/{parent_id}/" para redirigir a una URL compuesta por el campo parent_id en un modelo.

delete(request, *args, **kwargs)

Recupera el objeto objetivo y llama al método delete() de este, luego redirige a la URL de éxito.

get_success_url()

Devuelve la URL a redirigir cuando el objeto nominado ha sido eliminado con éxito. Devuelve success_url por defecto.