从 Django 查询集中的日期时间字典中提取日期
Extract date from datetime dictionary in django queryset
在这上面花了太多时间所以我想问一下,
queryset = MyModel.objects.filter(id=id).values('send_date')
结果是这样
<QuerySet [{'send_date': datetime.date(2020, 9, 30)}]>
正在尝试获取 2020, 9, 30
我试过sd=queryset.strftime('%Y-%m-%d')
,sd=datetime.strptime(max(queryset.keys()),'%Y-%m-%d')
甚至试过sd=queryset['send_date']
,sd=queryset.get('send_date')
,for key,value in queryset.items()
结果报错"queryset has no items() attr"
一般查询集中可能有多个项目,因此您需要遍历它的值
queryset = MyModel.objects.filter(id=id).values('send_date')
for date_value in queryset:
print(date_value["send_date"])
如果您确定那里只有一个值,那么您可以获得值作为
queryset[0]["send_date"]
它是否必须是一个查询集,因为您的过滤器参数是 ID(我猜这是唯一的)?
如果您知道您得到的是单个对象,您可以这样做:
MyModel.objects.get(id=id).send_date.strftime('%Y, %m, %d')
否则,如果您想保留过滤器,您可以像这样在数组中获取日期:
[send_date.strftime('%Y, %m, %d') for send_date in MyModel.objects.filter(id=id).values_list('send_date', flat=True)]
在这上面花了太多时间所以我想问一下,
queryset = MyModel.objects.filter(id=id).values('send_date')
结果是这样
<QuerySet [{'send_date': datetime.date(2020, 9, 30)}]>
正在尝试获取 2020, 9, 30
我试过sd=queryset.strftime('%Y-%m-%d')
,sd=datetime.strptime(max(queryset.keys()),'%Y-%m-%d')
甚至试过sd=queryset['send_date']
,sd=queryset.get('send_date')
,for key,value in queryset.items()
结果报错"queryset has no items() attr"
一般查询集中可能有多个项目,因此您需要遍历它的值
queryset = MyModel.objects.filter(id=id).values('send_date')
for date_value in queryset:
print(date_value["send_date"])
如果您确定那里只有一个值,那么您可以获得值作为
queryset[0]["send_date"]
它是否必须是一个查询集,因为您的过滤器参数是 ID(我猜这是唯一的)?
如果您知道您得到的是单个对象,您可以这样做:
MyModel.objects.get(id=id).send_date.strftime('%Y, %m, %d')
否则,如果您想保留过滤器,您可以像这样在数组中获取日期:
[send_date.strftime('%Y, %m, %d') for send_date in MyModel.objects.filter(id=id).values_list('send_date', flat=True)]