我想在模型/表格中转储最后30分钟更新的json。
我使用下面的代码,但它没有给我想要的结果。
它总是给我最后/最近(1个对象)更新而不是30分钟数据。
我使用的代码:
def encode_complex(obj):
if isinstance(obj, Verification):
mydict = dict()
mydict['id'] = obj.id
mydict['asset_code'] = obj.asset_code
mydict['scan_time'] =obj.scan_time.strftime('%b.%d,%Y, %I:%M %P')
mydict['credential'] = obj.credential
mydict['status'] = STATUS_CHOICES[obj.status]
mydict['operator'] = obj.operator
mydict['location'] = obj.location
mydict['auth_code'] = obj.auth_code
mydict['emp_id'] = obj.emp_id
return mydict
#This gives updates of last 30 minutes in json dump
def get_latest_verification(request):
data = Verification.objects.filter(scan_time__gte=datetime.datetime.now()-datetime.timedelta(seconds=1800))
arraydata = []
map(lambda x: arraydata.append(x), data)
encodeStr = json.JSONEncoder(default=encode_complex).encode(arraydata)
return HttpResponse(encodeStr)
任何人都可以纠正我......
答案 0 :(得分:0)
您可以在django中使用serialization
。所以你的功能可以更新到
def get_latest_verification(request):
from django.core import serializers
data = Verification.objects.filter(scan_time__gte=datetime.datetime.now()-datetime.timedelta(seconds=1800))
encodeStr = serializers.serialize("json", data)
return HttpResponse(encodeStr)
无需encode_complex()
功能。