我正试图加入两个查询集,并按日期对最终列表进行排序。查询集没有名称的东西。因此,我不确定如何使用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是什么?
我认为星期一早上使我迷雾重重。
谢谢!
答案 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()