Ici, nous allons expliquer les bases de la vue basée sur les classes de django (vue générale).
Écrivez dans views.py
sous le répertoire de l'application.
Supposons que vous souhaitiez utiliser «SampleModel» de «models.py» comme modèle et «SampleForm» de «forms.py» comme formulaire.
TemplateView
Il s'agit de la forme la plus simple de vue de classe. Il peut être utilisé pour créer différentes pages.
views.py
from django.views import generic
class SampleTemplate(generic.TemplateView):
template_name = 'app/app_template.html'
Si template_name
, qui spécifie le fichier HTML à utiliser comme modèle, est défini sur nom de l'application / nom de l'application_view nom.html
, il sera utilisé par défaut même s'il n'est pas spécifié lors de la définition de la classe. La même chose est vraie pour les autres vues décrites ci-dessous.
ListView
Il peut être utilisé pour les pages qui répertorient plusieurs enregistrements, comme la page de liste d'articles d'un blog.
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 #Lors de l'ajout de la mise en page
model
spécifie le modèle qui contient les enregistrements à afficher sur la page.
CreateView
Il peut être utilisé pour les pages qui créent de nouveaux enregistrements, comme la création de nouveaux articles pour les 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')
Un écran de formulaire est créé sur la base du formulaire spécifié par form_class
.
De plus, success_url
spécifie la page vers laquelle effectuer la transition après la création d'article réussie. Les détails seront expliqués dans l'article ʻurls.py`.
DetailView
Il peut être utilisé pour les pages qui affichent des détails d'enregistrement, comme des pages individuelles d'articles de blog.
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
Il peut être utilisé pour les pages qui mettent à jour le contenu des enregistrements une fois créés, comme l'écran d'édition des articles de blog.
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
Il peut être utilisé pour les pages pour supprimer des enregistrements créés, tels que l'écran de suppression d'articles de blog.
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')
Ici, j'ai expliqué les bases de la vue basée sur les classes de django. La prochaine fois, je parlerai des vues basées sur les fonctions.
Recommended Posts