Los textos editores genericos

Las siguientes vistas se describen en esta página y proporcionan una base para editar contenido:

Ver también

La framework de mensajes contiene SuccessMessageMixin, que facilita la presentación de mensajes sobre las solicitudes de formulario exitosas.

Nota

Algunas de las ejemplos en esta página asumen que un modelo Author se ha definido como sigue en myapp/models.py:

from django.db import models
from django.urls import reverse


class Author(models.Model):
    name = models.CharField(max_length=200)

    def get_absolute_url(self):
        return reverse("author-detail", kwargs={"pk": self.pk})

FormView

class django.views.generic.edit.FormView

Una vista que muestra un formulario. Al producirse un error, vuelve a mostrar el formulario con errores de validación; con éxito, redirige a una nueva URL.

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

Ejemplo myapp/forms.py:

from django import forms


class ContactForm(forms.Form):
    name = forms.CharField()
    message = forms.CharField(widget=forms.Textarea)

    def send_email(self):
        # send email using the self.cleaned_data dictionary
        pass

Ejemplo myapp/views.py:

from myapp.forms import ContactForm
from django.views.generic.edit import FormView


class ContactFormView(FormView):
    template_name = "contact.html"
    form_class = ContactForm
    success_url = "/thanks/"

    def form_valid(self, form):
        # This method is called when valid form data has been POSTed.
        # It should return an HttpResponse.
        form.send_email()
        return super().form_valid(form)

Ejemplo myapp/contact.html:

<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Send message">
</form>
class django.views.generic.edit.BaseFormView

Vista base para mostrar un formulario. No se pretende utilizarla directamente, sino como clase padre de la django.views.generic.edit.FormView o otras vistas que muestren un formulario.

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

CreateView

class django.views.generic.edit.CreateView

Vista que muestra un formulario para crear un objeto, redirigiendo el formulario con errores de validación (si los hay) y guardando el objeto.

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

Atributos

template_name_suffix

La página CreateView mostrada a una solicitud GET utiliza un sufijo de nombre de plantilla de '_form'. Por ejemplo, cambiando este atributo a '_create_form' para una vista que crea objetos para el modelo de ejemplo Author causaría que la plantilla por defecto fuera 'myapp/author_create_form.html'.

object

Al utilizar CreateView tienes acceso a self.object, que es el objeto que se está creando. Si el objeto aún no ha sido creado, su valor será None.

Ejemplo myapp/views.py:

from django.views.generic.edit import CreateView
from myapp.models import Author


class AuthorCreateView(CreateView):
    model = Author
    fields = ["name"]

Ejemplo: myapp/author_form.html

<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save">
</form>
class django.views.generic.edit.BaseCreateView

Vista base para crear una instancia de objeto nuevo. No está destinado a ser utilizado directamente, sino más bien como clase padre de la :class:`django.views.generic.edit.CreateView.

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

Métodos

get(request, *args, **kwargs)

Establece la instancia actual del objeto (self.object) a None.

post(request, *args, **kwargs)

Establece la instancia actual del objeto (self.object) a None.

ActualizarView

class django.views.generic.edit.UpdateView

Una vista que muestra un formulario para editar un objeto existente, volviendo a mostrar el formulario con errores de validación (si los hay) y guardando cambios en el objeto. Esto utiliza un formulario generado automáticamente desde la clase del modelo del objeto (a menos que se especifique una clase de formulario manualmente).

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

Atributos

template_name_suffix

La página de UpdateView que se muestra en respuesta a una solicitud GET utiliza un sufijo de nombre de plantilla de template_name_suffix de “form”. Por ejemplo, cambiando esta atributo a “update_form” para una vista que actualiza objetos del modelo de ejemplo Author causaría el nombre de plantilla predeterminado ser “myapp/author_update_form.html”.

object

Cuando se utiliza UpdateView tienes acceso a self.object, que es el objeto que está siendo actualizado.

Ejemplo myapp/views.py:

from django.views.generic.edit import UpdateView
from myapp.models import Author


class AuthorUpdateView(UpdateView):
    model = Author
    fields = ["name"]
    template_name_suffix = "_update_form"

Ejemplo: myapp/author_update_form.html

<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Update">
</form>
class django.views.generic.edit.BaseUpdateView

Vista base para actualizar una instancia de objeto existente. No se debe utilizar directamente, sino como clase padre de la django.views.generic.edit.UpdateView.

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

Métodos

get(request, *args, **kwargs)

Establece la instancia actual del objeto (self.object).

post(request, *args, **kwargs)

Establece la instancia actual del objeto (self.object).

EliminarView

class django.views.generic.edit.DeleteView

Los textos traducidos son:

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas:

Atributos

form_class

Herencia de BaseDeleteView. La clase de formulario que se utilizará para confirmar la solicitud. Por defecto, django.forms.Form, lo que resulta en un formulario vacío que siempre es válido.

Al proporcionar tu propia subclase Form, puedes agregar requisitos adicionales, como por ejemplo una casilla de verificación de confirmación.

template_name_suffix

La página DeleteView mostrada a una solicitud GET utiliza un sufijo de nombre de plantilla de '_confirm_delete'. Por ejemplo, cambiando este atributo a '_check_delete' para una vista que elimina objetos del modelo de ejemplo Author causaría el nombre de plantilla predeterminado ser 'myapp/author_check_delete.html'.

Ejemplo myapp/views.py:

from django.urls import reverse_lazy
from django.views.generic.edit import DeleteView
from myapp.models import Author


class AuthorDeleteView(DeleteView):
    model = Author
    success_url = reverse_lazy("author-list")

Ejemplo myapp/author_confirm_delete.html

<form method="post">{% csrf_token %}
    <p>Are you sure you want to delete "{{ object }}"?</p>
    {{ form }}
    <input type="submit" value="Confirm">
</form>
class django.views.generic.edit.BaseDeleteView

Una vista base para eliminar una instancia de objeto. No se pretende utilizar directamente, sino más bien como clase padre de la django.views.generic.edit.DeleteView.

Ancestros (MRO)

Esta vista hereda métodos y atributos de las siguientes vistas: