Ich habe versucht, get_object_or_404
Methode in meinem view
zu testen. Also setze ich DEBUG=False
und setze ALLOWED_HOSTS=['*']
.Django - get_object_or_404 gibt 500 statt 404 zurück
Jetzt, wenn ich zu http://127.0.0.1:8000/profile/correctusername/
gehe, gibt es ein korrektes Profil zurück. Das Problem ist, dass, wenn ich versuche, falsch username
zu schreiben, es 500
anstelle von 404
zurückgibt - entsprechend dem Namen der Funktion nehme ich an, dass es 404
zurückgeben sollte.
def get_user_profile(request, username):
# user = User.objects.get(username=username)
user = get_object_or_404(User, username=username)
jobs = user.jobs.all()
table = MyJobsTable(jobs)
context = {
'my_jobs': table,
"user_": user
}
return render(request, 'auth/profiles/my-profile.html', context=context)
Warum ist das so und wie man es beheben?
würde ich verlassen DEBUG auf true gesetzt, so erhalten Sie eine ausführlichere Fehler sehen Nachricht von dem, was schief gelaufen können. Sie können immer noch sehen, ob Sie ein Objekt zurückbekommen oder einen 404-Fehler. – denvaar
Ich habe es überprüft und es gibt wirklich 404 zurück, also weiß ich nicht, warum ohne DEBUG-Modus 500 zurückgibt. Vielleicht weil 404 html nicht finden kann? –
Das könnte der Grund sein. – denvaar