Ich habe Probleme beim Versuch, "DoesNotExist-Fehler" zu ermitteln. Ich habe versucht, den richtigen Weg zum Verwalten der Ergebnisse ohne Antwort zu finden. Ich habe jedoch weiterhin Probleme bei "DoesNotExist" oder "Objekt hat kein Attribut 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')
python
django
django-models
django-views
Carlos
quelle
quelle
Antworten:
Diese Linie
except Vehicle.vehicledevice.device.DoesNotExist
Mittel suchen Gerät Beispiel für doesNotExist Ausnahme, aber es gibt keine, weil es auf Klassenebene ist, Sie wollen so etwas wie
except Device.DoesNotExist
quelle
Ich habe die Lösung für dieses Problem mithilfe von ObjectDoesNotExist auf diese Weise gefunden
from django.core.exceptions import ObjectDoesNotExist ...... try: # try something except ObjectDoesNotExist: # do something
Danach funktioniert mein Code nach Bedarf
Vielen Dank, Ihr Beitrag hilft mir, mein Problem zu lösen
quelle
vehicledevice.device.devicetrack_set
, und dann fangen<That class>.DoesNotExist
.vehicledevice.device
, und finden Sie heraus, welches Modell für dasdevicetrack
Attribut verwandt ist.DoesNotExist
etwas für etwas anderes fangen ... das ganze Zen-Zeug "explizit ist besser als implizit"Die Lösung, die ich für die beste und optimierte halte, ist:
quelle