按日期排序对象列表,其中对象没有名称
Posted
技术标签:
【中文标题】按日期排序对象列表,其中对象没有名称【英文标题】:Sort list of objects by date, where objects don't have name 【发布时间】:2020-01-29 14:05:19 【问题描述】:我正在尝试加入两个查询集并按日期对最终列表进行排序。查询集没有名称的东西。所以我不太确定如何用 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 是什么?
我觉得周一早上让我的脑海里浮现了一层迷雾。
谢谢!
【问题讨论】:
【参考方案1】:试试:
sorted_list = sorted(ar_dates, key=lambda r: r['checkin'])
#or
ar_dates.sort(key=lambda r: r['checkin']) #sort is inplace
【讨论】:
【参考方案2】:当您使用.values()
时,生成的查询集包含dict
s,而不是模型实例。因此,您必须使用r['checkin']
而不是r.checkin
:
sorted_list = ar_dates.sort(key=lambda r: r['checkin'])
供参考,这里是documentation of .values()
的链接
【讨论】:
谢谢你的解释,我认为它必须与'.values()'做一些事情以上是关于按日期排序对象列表,其中对象没有名称的主要内容,如果未能解决你的问题,请参考以下文章