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')
Hier erklärte ich die Grundlagen der klassenbasierten Sichtweise von Django. Nächstes Mal werde ich über funktionsbasierte Ansichten sprechen.
Recommended Posts