2013-04-24 7 views
39

"DoesNotExist Errors" ı çözmeye çalışmakla ilgili sorunlar yaşıyorum, yanıtlama sonuçlarını yönetmek için doğru yolu bulmaya çalıştım, ancak "DoesNotExist" veya "Object Atticute DoestNotExists" ile ilgili sorun yaşamaya devam ediyorum.Django DoesNotExist

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') 
+0

ilgili: https://stackoverflow.com/a/2143599/3015186 – np8

cevap

50

bu şekilde Bundan sonra

from django.core.exceptions import ObjectDoesNotExist 
...... 

try: 
    # try something 
except ObjectDoesNotExist: 
    # do something 

üzerinde ObjectDoesNotExist kullanarak bu konuya çözüm buldum, benim kod senin sonrası beni çözmeye yardımcı

Teşekkür herhangi bir şekilde ihtiyaç olarak çalışıyor benim sorun

+10

İşe yarayacak, ama bu gerçekten en iyi yol değil. Nesic sınıfının 'vehicledevice.device.devicetrack_set' tarafından temsil edildiğini ve .DoesNotExist' kodunu yakaladığını öğrenmelisiniz. – mipadi

+0

Bunu bulmaya çalışıyordum, ayrıca tahmin etmeye çalışıyordum, çünkü çözümü bulamadım, bazı belgeleri okuduktan sonra bu yolu buldum Kodu değiştirmeyi denediniz mi lütfen – Carlos

+1

Araca bakın vehicledevice .device' ve 'devicetrack' özniteliği için ilgili modelin ne olduğunu bulun. – mipadi

85

Bu hat

except Vehicle.vehicledevice.device.DoesNotExist 

DoesNotExist istisna için cihaza örneği aramaya anlamına gelir, ancak hiçbiri sınıf düzeyinde olduğundan, sen

gibi bir şey istiyorum, var
except Device.DoesNotExist 
+0

bunu yapmaya çalıştık ama firefox hata ayıklama bana verir:/trackin de DoesNotExist g/istek/durumları AraçAracı eşleştirme sorgusu mevcut değil. Arama parametreleri {'is_joined__exact': True} – Carlos

+0

Bu beklenen ve yalnızca gerçekte olmayan bir nesne isteğinde bulunduğunuz anlamına gelir. Verilerinize veya arkasındaki mantığa bakmalısınız –

+1

Yardımınız için teşekkür ederiz. ObjectDoesNotExist kullanarak istisna yönetiminde yanıtımı buldum Zamanınız için çok teşekkürler – Carlos