数据库中的HI我有一些带有创建日期的数据以及与之相关的某些分数。created_date的类型为DateTime。我正在使用django ORM。
数据就像
**col1 created_date score**
xxx 2019-05-28T10:07:57.000Z 8
yye 2019-05-27T10:07:57.000Z 9
abc 2019-05-28T09:07:57.000Z 10
我希望按日期对日期进行排序,然后按降序得分,即
abc 2019-05-28T09:07:57.000Z 10
xxx 2019-05-28T10:07:57.000Z 8
yye 2019-05-27T10:07:57.000Z 9
我正在使用
SomeModel.objects.values_list(col , score, created_date
).filter(somefilter tcategory=cat).order_by(
'-created_date__day',
'-score')
我要例外-
raise NotImplementedError('subclasses of BaseDatabaseOperations may require a datetime_extract_sql() method')
NotImplementedError: subclasses of BaseDatabaseOperations may require a datetime_extract_sql() method
谢谢
答案 0 :(得分:0)
在此处添加__day
查找似乎没有多大意义,您可以按created_by_date
降序排列:
SomeModel.objects.values_list(
'col' , 'score', 'created_date'
).filter(
somefilter tcategory=cat
).order_by('-created_date', '-score')
如果您真的想在当天的日期之前订购,可以在TruncDate
[Django-doc]处使用注释:
from django.db.models.functions import TruncDate
SomeModel.objects.values_list(
'col' , 'score', 'created_date'
).annotate(
create_day=TruncDate('created_date')
).filter(
somefilter tcategory=cat
).order_by('-create_day', '-score')