Die ganze Zeit in Django sehe ich DoesNotExist
wie in db.models.fields.related.py
angehoben werden. Nicht ObjectDoesNotExist
, die in django.core.exceptions
definiert ist, aber nur DoesNotExist
. Wo ist diese Ausnahmeklasse definiert oder verstehe ich Ausnahmen nicht vollständig? Ich habe überprüft, dass es nicht in Ausnahmen (zumindest nicht, dass ich weiß). Ich bin offensichtlich verwirrt.Django: Woher kommt "DoesNotExist"?
Hinweis: Es wird auch als Attribut einer Modellunterklasseninstanz wie `self.someforeignkey.DoesNotExist 'bereitgestellt. Wie ist das möglich?
Dank Alex. Ich wusste nicht, dass Django diese Methode add_to_class() hatte. Ich habe in Komodo eine Dokumentensuche nach "class DoesNotExist" gemacht und schlug mir den Kopf an die Wand. – orokusaki
Wenn es nicht notwendig ist, zu disambiguieren, welche Klasse die Quelle von 'DoesNotExist' ist (sehr selten in meiner Erfahrung), ist es sicherer den Benutzer' ObjectDoesNotExist' zu benutzen. – Marcin
Ich denke, dass es in fast jeder Situation 100% besser ist zu wissen, welche Ausnahme ausgelöst wurde. Eine Decke 'außer ObjectDoesNotExist:' ist nicht besser als 'außer:'. Da Sie nicht wissen, was die Ausnahme verursacht hat, wird Ihr Programm möglicherweise auf schlechte Informationen reagieren. – orokusaki