i have to display a list shift wise like have to first show all day shift results then afternoon then night but now it shows afternoon first then night then day here is my code
views.py:
def get_queryset(self):
getall = self.request.GET.get("getall")
if self.request.user:
versions = LogVersion.objects.filter(
form__airport__id=self.request.user.aerosimple_user.airport_id
).exclude(status=DRAFT)
filters = self.request.GET.get("filters")
tags = self.request.GET.get("tags")
logs = Log.objects.none()
result = Log.objects.none()
for v in versions:
if len(v.operation_logs.order_by('-id').all())>0:
result = result | v.operation_logs.order_by('-id').all()
result = result.exclude(shift_name = None).exclude(shift_name='')
# if getall:
if getall:
return Log.objects.filter(
form__form__airport__id=self.request.user.aerosimple_user.airport.id)
if filters is not None:
filters = filters[:-2] if filters[-2:] == ',,' else filters
filters_list = filters.split(',,')
for filters in filters_list:
log = result.filter(Q(type = filters) | Q(subtype = filters))
if filters == 'Inspection Completed':
log = result.filter(Q(description = filters))
elif log != []:
for r in result:
if r.tags is not None and filters in r.tags:
log =result.filter(id=r.id)
else:
log = result.filter(Q(type = filters) | Q(subtype = filters))
logs = logs | log
return logs.all()
return result
how to sort it correctly
Example:
logs = sorted(logs, key=lambda x: dict(day=1, afternoon=2, night=3)[x.shift])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.