Tengo problemas para tratar de calcular los "Errores no existen", he intentado encontrar la forma correcta de administrar los resultados sin respuesta, sin embargo, sigo teniendo problemas con "No existe" o "El objeto no tiene el atributo No existe"
from django.http import HttpResponse
from django.contrib.sites.models import Site
from django.utils import simplejson
from vehicles.models import *
from gpstracking.models import *
def request_statuses(request):
data = []
vehicles = Vehicle.objects.filter()
Vehicle.vehicledevice_
for vehicle in vehicles:
try:
vehicledevice = vehicle.vehicledevice_set.get(is_joined__exact = True)
imei = vehicledevice.device.imei
try:
lastposition = vehicledevice.device.devicetrack_set.latest('date_time_process')
altitude = lastposition.altitude
latitude = lastposition.latitude
longitude = lastposition.longitude
date_time_process = lastposition.date_time_process.strftime("%Y-%m-%d %H:%M:%S"),
date_time_created = lastposition.created.strftime("%Y-%m-%d %H:%M:%S")
except Vehicle.vehicledevice.device.DoesNotExist:
lastposition = None
altitude = None
latitude = None
longitude = None
date_time_process = None
date_time_created = None
except Vehicle.DoesNotExist:
vehicledevice = None
imei = ''
item = [
vehicle.vehicle_type.name,
imei,
altitude,
"Lat %s Lng %s" % (latitude, longitude),
date_time_process,
date_time_created,
'',
''
]
data.append(item)
statuses = {
"sEcho": 1,
"iTotalRecords": vehicles.count(),
"iTotalDisplayRecords": vehicles.count(),
"aaData": data
}
json = simplejson.dumps(statuses)
return HttpResponse(json, mimetype='application/json')
python
django
django-models
django-views
Carlos
fuente
fuente

Respuestas:
Esta línea
except Vehicle.vehicledevice.device.DoesNotExistsignifica buscar una instancia de dispositivo para la excepción DoesNotExist, pero no hay ninguna, porque está en el nivel de clase, quieres algo como
except Device.DoesNotExistfuente
He encontrado la solución a este problema usando ObjectDoesNotExist de esta manera
from django.core.exceptions import ObjectDoesNotExist ...... try: # try something except ObjectDoesNotExist: # do somethingDespués de esto, mi código funciona como necesito.
Gracias de todos modos, tu publicación me ayuda a resolver mi problema.
fuente
vehicledevice.device.devicetrack_sety luego capturar<That class>.DoesNotExist.vehicledevice.devicey averigüe cuál es el modelo relacionado para eldevicetrackatributo.DoesNotExistpor otra cosa ... todo el asunto zen de "lo explícito es mejor que lo implícito"La solución que creo que es mejor y optimizada es:
fuente