解决按照时间排序时,遇到时间为空时导致排序失败的问题,
top_articles = Article.objects.filter(
is_crawled=4, is_active=True
).order_by(
F('pinned_time').desc(nulls_last=True), '-created_time'
).defer('content')
注意: 不能使用order_by(F('-pinned_time').desc(nulls_last=True)), pinned_time 前面不能使用'-'
倒序排列,时间为空的在前面
order_by(F('pinned_time').desc(nulls_first=True))
倒序排列,时间为空的在后面
倒序排列,时间为空的在前面
order_by(F('pinned_time').desc(nulls_last=True))
正序排列,时间为空的在前面
order_by(F('pinned_time').asc(nulls_first=True))
正序排列,时间为空的在前面
order_by(F('pinned_time').asc(nulls_last=True))
网址: https://stackoverflow.com/questions/7749216/django-order-by-date-but-have-none-at-end