Ich habe Probleme beim Versuch, "DoesNotExist-Fehler" zu ermitteln. Ich habe versucht, den richtigen Weg zu finden, um die Ergebnisse ohne Antwort zu verwalten. Ich habe jedoch weiterhin Probleme mit "DoesNotExist" oder "Object hast not Attribute DoestNotExists".
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')
Auf diese Weise habe ich mithilfe von ObjectDoesNotExist eine Lösung für dieses Problem gefunden
from Django.core.exceptions import ObjectDoesNotExist
......
try:
# try something
except ObjectDoesNotExist:
# do something
Danach funktioniert mein Code wie ich brauche
Vielen Dank, Ihr Beitrag hilft mir, mein Problem zu lösen
Diese Linie
except Vehicle.vehicledevice.device.DoesNotExist
bedeutet, nach device instance für die DoesNotExist-Ausnahme zu suchen, aber es gibt keine, da es sich auf Klassenebene befindet und Sie so etwas möchten
except Device.DoesNotExist