Views de edição genéricaLink para este cabeçalho

As seguintes views são descritas nesta pagina e fornece uma base para edição de conteúdo:

FormViewLink para este cabeçalho

class django.views.generic.edit.FormViewLink para esta definição

É uma view que mostra um formulario. Caso tenha um erro da validação é exibido o formulario com os erros para se corrido. Caso o formulario passe pela validação é direcionado para uma nova URL.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

Exemplo myapp/forms.py:

Code
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

Exemplo myapp/views.py:

Code
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)

Examplo myapp/contact.html:

Django template
<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Send message">
</form>
class django.views.generic.edit.BaseFormViewLink para esta definição

A base view for displaying a form. It is not intended to be used directly, but rather as a parent class of the django.views.generic.edit.FormView or other views displaying a form.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

CreateViewLink para este cabeçalho

class django.views.generic.edit.CreateViewLink para esta definição

Uma view que exibi um formulário para a criação de um objeto, reexibindo o formulário com errors de validações(se houver algum), e salvando o objeto.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

Atributos

template_name_suffixLink para esta definição

A página “CreateView” apresentada após uma requisição do tipo “GET”, utiliza um “template_name_suffix” de “_form”. Ao alterar este atributo para '_create_form', por exemplo, para uma view que esteja criando objetos para o exemplo “Author” model, faria com que o template_name padrão fosse 'myapp/author_create_form.html'.

objectLink para esta definição

Ao utilizar “CreateView”, você tem acesso ao “self.object”, que é o objeto que está sendo criado. Caso o objeto não tenha sido criado ainda, o valor será “None”.

Exemplo myapp/views.py:

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


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

Exemplo myapp/author_form.html:

Django template
<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save">
</form>
class django.views.generic.edit.BaseCreateViewLink para esta definição

A base view for creating a new object instance. It is not intended to be used directly, but rather as a parent class of the django.views.generic.edit.CreateView.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

Métodos

get(request, *args, **kwargs)Link para esta definição

Sets the current object instance (self.object) to None.

post(request, *args, **kwargs)Link para esta definição

Sets the current object instance (self.object) to None.

UpdateViewLink para este cabeçalho

class django.views.generic.edit.UpdateViewLink para esta definição

Uma view que apresenta um form para editar um objeto existente, reapresentando este form com erros de validação (caso exista algum) e salvando as alterações no objeto. Aqui será utilizado um form que foi gerado automaticamente à partir da classe definida no “model” (à menos que seja manualmente especificada uma class que esteja definida em form).

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

Atributos

template_name_suffixLink para esta definição

A página “UpdateView” que é mostrada após uma requisição “GET”, utiliza um “emplate_name_suffix” de '_form'. Caso este atributo fosse alterado para '_update_form', para uma view que esteja atualizando objetos de um model “Author”, por exemplo, faria com que o template_name fosse 'myapp/author_update_form.html'.

objectLink para esta definição

Ao utilizar “UpdateView”, você tem acesso ao “self.object”, que é o objeto que está sendo atualizado.

Exemplo myapp/views.py:

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


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

Exemplo myapp/author_update_form.html:

Django template
<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Update">
</form>
class django.views.generic.edit.BaseUpdateViewLink para esta definição

A base view for updating an existing object instance. It is not intended to be used directly, but rather as a parent class of the django.views.generic.edit.UpdateView.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

Métodos

get(request, *args, **kwargs)Link para esta definição

Sets the current object instance (self.object).

post(request, *args, **kwargs)Link para esta definição

Sets the current object instance (self.object).

DeleteViewLink para este cabeçalho

class django.views.generic.edit.DeleteViewLink para esta definição

Uma view que apresenta uma página de confirmação e deleta um objeto existente. O dado objeto, será somente deletado se o tipo de request for “POST”. Caso esta mesma view receba um request do tipo “GET”, será apresentada uma página de confirmação que deverá conter um form que será retornada para a mesma URL.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”:

Atributos

form_classLink para esta definição

Inherited from BaseDeleteView. The form class that will be used to confirm the request. By default django.forms.Form, resulting in an empty form that is always valid.

By providing your own Form subclass, you can add additional requirements, such as a confirmation checkbox, for example.

template_name_suffixLink para esta definição

The DeleteView page displayed to a GET request uses a template_name_suffix of '_confirm_delete'. For example, changing this attribute to '_check_delete' for a view deleting objects for the example Author model would cause the default template_name to be 'myapp/author_check_delete.html'.

Exemplo myapp/views.py:

Code
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")

Exemplo myapp/author_confirm_delete.html:

Django template
<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.BaseDeleteViewLink para esta definição

A base view for deleting an object instance. It is not intended to be used directly, but rather as a parent class of the django.views.generic.edit.DeleteView.

Ancestrais (MRO)

Essa “view” herda métodos e atributos das seguintes “views”: