Car*_*los 71 python django django-models django-views
我在试图找出"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')
Run Code Online (Sandbox Code Playgroud)
Dmi*_*nko 119
这条线
except Vehicle.vehicledevice.device.DoesNotExist
Run Code Online (Sandbox Code Playgroud)
意味着为DoesNotExist异常寻找设备实例,但没有,因为它在类级别,你想要类似的东西
except Device.DoesNotExist
Run Code Online (Sandbox Code Playgroud)
Car*_*los 93
我已经通过这种方式使用ObjectDoesNotExist找到了解决这个问题的方法
from django.core.exceptions import ObjectDoesNotExist
......
try:
# try something
except ObjectDoesNotExist:
# do something
Run Code Online (Sandbox Code Playgroud)
在此之后,我的代码按照我的需要工作
谢谢你的帖子,你的帖子帮我解决了我的问题
第一种方式:
\ntry:\n # Your code goes here\nexcept Model.DoesNotExist:\n # Handle error here\nRun Code Online (Sandbox Code Playgroud)\n另一种处理方式在 Django 中没有找到。它引发 Http404 而不是 model\xe2\x80\x99sDoesNotExist 异常。
\nhttps://docs.djangoproject.com/en/3.1/topics/http/shortcuts/#get-object-or-404
\nfrom django.shortcuts import get_object_or_404\n\ndef get_data(request):\n obj = get_object_or_404(Model, pk=1)\nRun Code Online (Sandbox Code Playgroud)\n