Todo el tiempo en Django veo DoesNotExist
que se plantea como en db.models.fields.related.py
. No ObjectDoesNotExist
que se define en django.core.exceptions
, pero solo DoesNotExist
. ¿Dónde se define esta clase de excepción, o no estoy comprendiendo completamente las excepciones? He comprobado que no está en excepciones (al menos no que yo sepa). Estoy confundido, obviamente.Django: ¿De dónde viene "DoesNotExist"?
Nota: También viene gratis, como un atributo de una instancia de subclase modelo, como `self.someforeignkey.DoesNotExist. ¿Cómo es esto posible?
Gracias Alex. No sabía que Django tenía ese método add_to_class(). Hice una búsqueda de documentos en Komodo para la 'clase DoesNotExist' y me estaba golpeando la cabeza contra la pared. – orokusaki
A menos que sea necesario desambiguar qué clase es la fuente de 'DoesNotExist' (muy raro en mi experiencia), es más seguro para el usuario' ObjectDoesNotExist'. – Marcin
Creo que en casi todas las situaciones es 100% mejor saber qué excepción se planteó. Una manta 'excepto ObjectDoesNotExist:' no es mejor que 'excepto:'. Como no sabe qué causó la excepción, su programa posiblemente estará actuando con mala información. – orokusaki