Aquí podría ser tu PUBLICIDAD


¿Cuál es la forma correcta de validar si un objeto existe en una vista django sin devolver 404?

votos
65

básicamente solo verifica si existe un objeto y devuelve el objeto. entonces basado en eso realiza acciones. Me pregunto cuál es la forma correcta de hacerlo sin devolver un 404?

try:
    listing = RealEstateListing.objects.get(slug_url = slug)
except:
    listing = None

if listing:
Publicado el 12/03/2009 a las 19:12
fuente por usuario Rasiel
En otros idiomas...        العربية       

3 respuestas

votos
144

También se puede hacer

if not RealEstateListing.objects.filter(slug_url=slug).exists():
    do stuff... 

A veces es más claro para usar intento: excepto: bloque y otras veces existe una sola línea () hace que el código más claro mirando ... todo depende de su lógica de la aplicación.

Respondida el 16/12/2011 a las 08:10
fuente por usuario zzart


Aquí podría ser tu PUBLICIDAD


votos
90

No usaría el contenedor 404 si no se le da un 404. Ese es un mal uso de la intención. Simplemente atrapa el DoesNotExist, en su lugar.

try:
    listing = RealEstateListing.objects.get(slug_url=slug)
except RealEstateListing.DoesNotExist:
    listing = None
Respondida el 12/03/2009 a las 08:24
fuente por usuario ironfroggy

votos
2
listing = RealEstateListing.objects.filter(slug_url=slug).first() 
Respondida el 12/04/2017 a las 10:06
fuente por usuario Henrik Heino