[PYTHON] Django klassenbasierte Ansicht

Einführung

Hier erklären wir die Grundlagen der klassenbasierten Ansicht von Django (Allzweckansicht). Schreiben Sie in views.py unter das Anwendungsverzeichnis. Angenommen, Sie möchten "SampleModel" von "models.py" als Modell und "SampleForm" von "forms.py" als Formular verwenden.

TemplateView

Dies ist die einfachste Form der Klassenansicht. Es kann verwendet werden, um verschiedene Seiten zu erstellen.

views.py


from django.views import generic


class SampleTemplate(generic.TemplateView):
    template_name = 'app/app_template.html'

Wenn template_name, das die als Vorlage zu verwendende HTML-Datei angibt, auf app name / app name_view name.html gesetzt ist, wird es standardmäßig verwendet, auch wenn es beim Definieren der Klasse nicht angegeben wird. Gleiches gilt für die anderen unten beschriebenen Ansichten.

ListView

Es kann für Seiten verwendet werden, auf denen mehrere Datensätze aufgelistet sind, z. B. die Artikellistenseite eines Blogs.

views.py


from django.views import generic

from .model import SampleModel


class SampleList(generic.ListView):
    model = SampleModel
    template_name = 'app/app_list.html'
    paginate_by = 10 #Beim Hinzufügen von Pagenation

model gibt das Modell an, das die Datensätze enthält, die auf der Seite angezeigt werden sollen.

CreateView

Es kann für Seiten verwendet werden, die neue Datensätze erstellen, z. B. zum Erstellen neuer Artikel für Blogs.

views.py


from django.urls import reverse_lazy
from django.views import generic

from .model import SampleModel
from .forms import SampleForm


class SampleCreate(generic.CreateView):
    model = SampleModel
    form_class = SampleForm
    template_name = 'app/app_create.html'
    success_url = reverse_lazy('app:app_list')

Ein Formularbildschirm wird basierend auf dem durch form_class angegebenen Formular erstellt. Außerdem gibt "success_url" die Seite an, zu der nach erfolgreicher Artikelerstellung übergegangen werden soll. Details werden im Artikel urls.py erklärt.

DetailView

Es kann für Seiten verwendet werden, auf denen Datensatzdetails angezeigt werden, z. B. einzelne Seiten von Blog-Artikeln.

views.py


from django.views import generic

from .model import SampleModel
from .forms import SampleForm


class SampleDetail(generic.Detail):
    model = SampleModel
    template_name = 'app/app_detail.html'

UpdateView

Es kann für Seiten verwendet werden, die den Inhalt von einmal erstellten Datensätzen aktualisieren, z. B. den Bearbeitungsbildschirm von Blog-Artikeln.

views.py


from django.urls import reverse_lazy
from django.views import generic

from .model import SampleModel
from .forms import SampleForm


class SampleUpdate(generic.UpdateView):
    model = SampleModel
    form_class = SampleForm
    template_name = 'app/app_update.html'
    success_url = reverse_lazy('app:app_list')

DeleteView

Es kann für Seiten verwendet werden, um erstellte Datensätze zu löschen, z. B. den Löschbildschirm von Blog-Artikeln.

views.py


from django.urls import reverse_lazy
from django.views import generic

from .model import SampleModel
from .forms import SampleForm


class SampleDelete(generic.DeleteView):
    model = SampleModel
    template_name = 'app/app_delete.html'
    success_url = reverse_lazy('app:app_list')

Zusammenfassung

Hier erklärte ich die Grundlagen der klassenbasierten Sichtweise von Django. Nächstes Mal werde ich über funktionsbasierte Ansichten sprechen.

Recommended Posts

Django klassenbasierte Ansicht
Django funktionsbasierte Ansicht
Django2 Konfigurationsmuster anzeigen
Django
[GoogleAppEngine] @login_erforderlich für Djangos klassenbasierte Ansicht
django klassenbasierte Ansichten API-Klassendiagramm
Django-Update
Django Note 4
Django Memorandum
Django-Suche
Django Installation
Django Zusammenfassung
Django-Test
Django # 2 (Vorlage)
Django Note 5
Django Tutorial Zusammenfassung für Anfänger von Anfängern ③ (Anzeigen)
Django zum Anfassen
Berühre Django
Django Zusammenfassung
Allgemeine Verarbeitung bei der Anforderung einer klassenbasierten Ansicht
Django Shoho
Django + Docker
Ajax in Django (mit generischer Klassenansicht)
Django Glossar
Django Installation
Django: Referenzen
Django Note 1
Django Note 3
Django Note 2
Django-Start
Django Memo
Django NullCharField
Ausgabe Django Detailansicht als PDF (japanische Unterstützung)
DJango Memo: Von Anfang an (Erstellen einer Ansicht)
Übergeben Sie Login-Benutzerinformationen, um sie in Django anzuzeigen
Django Tutorial Zusammenfassung für Anfänger von Anfängern ④ (Generic View)
Geben Sie die Ansichts-URL in der Django-Vorlage an