Generiska redigeringsvyerLink to this heading

Följande vyer beskrivs på den här sidan och ger en grund för redigering av innehåll:

FormViewLink to this heading

class django.views.generic.edit.FormViewLink to this definition

En vy som visar ett formulär. Vid fel visas formuläret på nytt med valideringsfel; vid framgång omdirigeras formuläret till en ny URL.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

Exempel 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

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

Exempel 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 to this definition

En basvy för att visa ett formulär. Den är inte avsedd att användas direkt, utan snarare som en överordnad klass till django.views.generic.edit.FormView eller andra vyer som visar ett formulär.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

CreateViewLink to this heading

class django.views.generic.edit.CreateViewLink to this definition

En vy som visar ett formulär för att skapa ett objekt, visa formuläret igen med valideringsfel (om det finns några) och spara objektet.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

Attribut

template_name_suffixLink to this definition

Sidan CreateView som visas för en GET-begäran använder ett template_name_suffix'_form. Om man t.ex. ändrar detta attribut till '_create_form' för en vy som skapar objekt för exempelmodellen Author skulle standardnamnet template_name bli 'myapp/author_create_form.html'.

objectLink to this definition

När du använder CreateView har du tillgång till self.object, som är det objekt som skapas. Om objektet inte har skapats ännu kommer värdet att vara None.

Exempel myapp/views.py:

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


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

Exempel 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 to this definition

En basvy för att skapa en ny objektinstans. Den är inte avsedd att användas direkt, utan snarare som en överordnad klass till django.views.generic.edit.CreateView.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

Metoder

get(request, *args, **kwargs)Link to this definition

Ställer in den aktuella objektinstansen (self.object) till None.

post(request, *args, **kwargs)Link to this definition

Ställer in den aktuella objektinstansen (self.object) till None.

UpdateViewLink to this heading

class django.views.generic.edit.UpdateViewLink to this definition

En vy som visar ett formulär för att redigera ett befintligt objekt, visa formuläret igen med valideringsfel (om det finns några) och spara ändringar i objektet. Här används ett formulär som automatiskt genereras från objektets modellklass (om inte en formulärklass anges manuellt).

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

Attribut

template_name_suffixLink to this definition

Sidan UpdateView som visas för en GET-begäran använder ett template_name_suffix'_form. Om man t.ex. ändrar detta attribut till '_update_form' för en vy som uppdaterar objekt för exempelmodellen Author skulle standardnamnet template_name bli 'myapp/author_update_form.html'.

objectLink to this definition

När du använder UpdateView har du tillgång till self.object, som är det objekt som uppdateras.

Exempel 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"

Exempel 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 to this definition

En basvy för uppdatering av en befintlig objektinstans. Den är inte avsedd att användas direkt, utan snarare som en överordnad klass till django.views.generic.edit.UpdateView.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

Metoder

get(request, *args, **kwargs)Link to this definition

Ställer in den aktuella objektinstansen (self.object).

post(request, *args, **kwargs)Link to this definition

Ställer in den aktuella objektinstansen (self.object).

DeleteViewLink to this heading

class django.views.generic.edit.DeleteViewLink to this definition

En vy som visar en bekräftelsesida och raderar ett befintligt objekt. Det angivna objektet kommer endast att raderas om förfrågningsmetoden är POST. Om denna vy hämtas via GET kommer den att visa en bekräftelsesida som bör innehålla ett formulär som POSTAR till samma URL.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer:

Attribut

form_classLink to this definition

Ärvd från BaseDeleteView. Den formulärklass som kommer att användas för att bekräfta begäran. Som standard django.forms.Form, vilket resulterar i ett tomt formulär som alltid är giltigt.

Genom att tillhandahålla en egen subklass av Form kan du lägga till ytterligare krav, t.ex. en kryssruta för bekräftelse.

template_name_suffixLink to this definition

Sidan DeleteView som visas för en GET begäran använder ett template_name_suffix av '_confirm_delete. Om man t.ex. ändrar detta attribut till '_check_delete för en vy som raderar objekt för exempelmodellen Author skulle standardnamnet på template_name bli 'myapp/author_check_delete.html'.

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

Exempel 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 to this definition

En basvy för att radera en objektinstans. Den är inte avsedd att användas direkt, utan snarare som en överordnad klass till django.views.generic.edit.DeleteView.

Ancestors (MRO)

Denna vy ärver metoder och attribut från följande vyer: