Zuallererst waren mir Fehlerzahlen wie 404 und 500 vage bewusst, so dass ich leicht googelte. http://human-dust.kdn.gr.jp/doujin/net/errormsg.html http://www.seohacks.net/blog/crawl_index/http_statuscode/
Es heißt immer noch, verwendet aber ein Modul namens Http404. Die Beschreibung im Tutorial lautet wie folgt.
from django.http import Http404
# ...
def detail(request, poll_id):
try: #Mit dem Code hier ...
pobject = Poll.objects.get(pk=poll_id) #Was ist pk?
except Poll.DoesNotExist: #Wenn es darum geht ····
raise Http404 #Als 404-Fehler behandeln
return render_to_response('polls/detail.html', {'poll': pobject}) #Erreichen Sie hier, wenn es kein Problem gibt
Auch hier scheint es eine verkürzte Schreibweise zu geben. In diesem Fall,
from django.shortcuts import render_to_response, get_object_or_404
# ...
def detail(request, poll_id):
pobject = get_object_or_404(Poll, pk=poll_id)
return render_to_response('polls/detail.html', {'poll': pobject})
Ich fühle mich so. Ist es in Ordnung, die try-Anweisung hier nicht zu verwenden? Tatsächlich verwendet der oben erwähnte auch beiläufig die Verknüpfungen, die beim letzten Mal erschienen sind. Persönlich möchte ich keine Abkürzungen verwenden, bis ich verstanden habe, wie es funktioniert, also habe ich es gewagt, es wie folgt zu beheben.
from django.http import Http404
#…
def detail(request,poll_id):
try:
pobject = Poll.objects.get(pk=poll_id)
except Poll.DoesNotExist:
raise Http404
temp = loader.get_template('polls/detail.html')
contxt = Context({
'poll':pobject
})
return HttpResponse(temp.render(contxt))
Es ist ein bisschen lang, aber ich habe das Gefühl, ich kann den Fluss fangen.
Recommended Posts