IT박스

장고는 존재하지 않습니다

itboxs 2020. 10. 31. 09:31

장고는 존재하지 않습니다


"DoesNotExist 오류"를 파악하는 데 문제가 있습니다. 무응답 결과를 관리하는 올바른 방법을 찾으려고 노력했지만 "DoesNotExist"또는 "개체에 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')

이 라인

 except Vehicle.vehicledevice.device.DoesNotExist

DoesNotExist 예외에 대한 장치 인스턴스찾는 것을 의미 하지만 클래스 수준에 있기 때문에 아무것도 없습니다.

 except Device.DoesNotExist

이런 식으로 ObjectDoesNotExist를 사용 하여이 문제에 대한 해결책을 찾았습니다.

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

try:
  # try something
except ObjectDoesNotExist:
  # do something

그 후, 내 코드가 필요에 따라 작동합니다.

어쨌든 감사합니다. 귀하의 게시물은 내 문제를 해결하는 데 도움이됩니다.

참고 URL : https://stackoverflow.com/questions/16181188/django-doesnotexist