NJay
Rear Admiral
- Registriert
- Aug. 2013
- Beiträge
- 5.514
Hallo,
ich arbeite gerade am Django Tutorial. Nun kann es vorkommen, dass der Nutzer eine Seite mit einem element aus der DB angezeigt bekommen möchte, die es nicht gibt. Mein Programm versucht also den Datenbankeintrag zu laden und wenn es ihn nicht gibt, wirf er folgende Exception:
Diese Exception möchte ich nun catchen um den Fehlerfall abzufangen. Der Code:
Funktioniert jedoch nicht. Er findet die Exception nicht, was einen Name Error verursacht:
Wie kann das sein? Es gibt den Ordner pollTest und es ist ja exakt der Pfad, den der Interpreter als Exception wird, 1 zu 1 kopiert.
Was mache ich falsch? Ich konnte im Internet nichts zu diesem Fehler finden.
Ich hatte das Problem in einem anderen Projekt (ohne Django, mit Thrift) genauso, da konte ich es nicht lösen und habe es ignoriert, was leider keine gute Idee war
Vielen Dank für eure Hilfe.
Edit: Habe das Problem durch ausprobieren gelöst. Kann mir einer eventuell erklären warum das das Problem ist? Liegt es daran, dass ich Picture oben im code importiere?
Der Catch block muss lauten:
ich arbeite gerade am Django Tutorial. Nun kann es vorkommen, dass der Nutzer eine Seite mit einem element aus der DB angezeigt bekommen möchte, die es nicht gibt. Mein Programm versucht also den Datenbankeintrag zu laden und wenn es ihn nicht gibt, wirf er folgende Exception:
Code:
pollTest.models.Picture.DoesNotExist: Picture matching query does not exist.
Diese Exception möchte ich nun catchen um den Fehlerfall abzufangen. Der Code:
Code:
try:
p = Picture.objects.get(pk=picture_id)
except pollTest.models.Picture.DoesNotExist:
p = "There is no picture with id = " + str(picture_id)
Funktioniert jedoch nicht. Er findet die Exception nicht, was einen Name Error verursacht:
Code:
NameError: name 'pollTest' is not defined
Wie kann das sein? Es gibt den Ordner pollTest und es ist ja exakt der Pfad, den der Interpreter als Exception wird, 1 zu 1 kopiert.
Was mache ich falsch? Ich konnte im Internet nichts zu diesem Fehler finden.
Ich hatte das Problem in einem anderen Projekt (ohne Django, mit Thrift) genauso, da konte ich es nicht lösen und habe es ignoriert, was leider keine gute Idee war
Vielen Dank für eure Hilfe.
Edit: Habe das Problem durch ausprobieren gelöst. Kann mir einer eventuell erklären warum das das Problem ist? Liegt es daran, dass ich Picture oben im code importiere?
Code:
from .models import Picture
Der Catch block muss lauten:
Code:
try:
p = Picture.objects.get(pk=picture_id)
except Picture.DoesNotExist:
p = "There is no picture with id = " + str(picture_id)
Zuletzt bearbeitet: