按日期排序对象列表,其中对象没有名称

时间:2019-09-30 09:35:10

标签: python django list django-queryset

我正试图加入两个查询集,并按日期对最终列表进行排序。查询集没有名称的东西。因此,我不确定如何使用lambda引用它们。

ur_dates =list(unavailable_rooms_prices.values('checkin','checkout').distinct().order_by('checkin'))
ar_dates=list(available_rooms_prices.values('checkin','checkout').distinct().order_by('checkin'))

if ur_dates is not None:
    ar_dates.extend(ur_dates)


sorted_list = ar_dates.sort(key=lambda r: r.checkin)

这是我尝试做的方式,但是我收到错误消息说dict对象没有属性“ checkin”。

据我了解,应该是Foo.checkin。但是在这种情况下,我的foo是什么?

我认为星期一早上使我迷雾重重。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试:

sorted_list = sorted(ar_dates, key=lambda r: r['checkin'])
#or
ar_dates.sort(key=lambda r: r['checkin']) #sort is inplace

答案 1 :(得分:1)

使用.values()时,结果查询集包含dict,而不是模型实例。因此,您必须使用r['checkin']而不是r.checkin

sorted_list = ar_dates.sort(key=lambda r: r['checkin'])

作为参考,这是指向documentation of .values()

的链接