Dies ist Ponta, ein Shiba-Hund. Ich ging mit meinem Besitzer nach Lawson. Hunde können den Laden nicht betreten. Als ich draußen wartete, kauften sie mir ein Kun. Der Besitzer scheint Punkte auf der Ponta-Karte zu sammeln. Obwohl die Namen gleich sind, ist die Ponta-Karte ein Tanuki-Charakter.
Lassen Sie es uns heute in der klassenbasierten Ansicht anzeigen. Die größte Frage ist, wie der von der URL erhaltene Wert an die klassenbasierte Ansicht übergeben werden kann.
urls.py Derzeit sieht urls.py so aus.
wan/urls.py
from django.urls import path
from . import views
app_name = 'wan'
urlpatterns = [
path('<dogname>/<diarydate>/', views.WanView.as_view(), name='index'),
]
Ich werde WanView in views.py definieren, also verwende ich "views.WanView.as_view ()". as_view () ist eine Funktion, die die Bedingungen von Djangos Ansicht erfüllt. [^ 1]
views.py Die Hauptansichten.
Geben Sie den Vorlagennamen in Vorlagenname ein. Get_context_data wurde überschrieben, um den Wert von der URL abzurufen. [^ 2] Sie können den Wert mit self.kwargs.get erhalten.
from django.views import generic
class WanView(generic.TemplateView):
template_name = "wan/index.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
diarydate = self.kwargs.get('diarydate')
dogname = self.kwargs.get('dogname')
context['year'] = diarydate[:4]
context['month'] = diarydate[4:6]
context['date'] = diarydate[6:]
context['title'] = dogname + "s Tagebuch"
context['description'] = "Der heutige Reis ist gegrilltes Fleisch!"
return context
Das gleiche wie gestern.
Wir sehen uns! Tschüss!
[^ 1]: Was ist Djangos klassenbasierte Ansicht as_view? [^ 2]: TemplateView-Muster, an das Sie sich zuerst mit Django erinnern möchten
Recommended Posts