postgre数据库datetime格式化
postgre和mysql、sqlite有些不同,在处理datetime对象格式化问题上没找到官方方法,自己做了一个。
做时间的格式化及聚合:
date_list = models.Article.objects.filter(user=user). \ extra(select={"y_m_date": "strftime('%%Y/%%m', create_time)"}).values("y_m_date").annotate(c=Count("nid")). \ values_list("y_m_date", "c").order_by("-y_m_date")
date_list: <QuerySet [('2018/09', 2), ('2018/07', 6)]>

def handle_datetime(obj): result = [] for i in obj: result.append(i[0].strftime('%Y/%m')) return result date_tupel = models.Article.objects.filter(user=user).values_list('create_time') date_format = handle_datetime(date_tupel) date = list(set(date_format)) date_list = [] for i in date: n = date_format.count(i) date_list.append([i, n]) # date_list
date_list: [['2018/09', 2], ['2018/07', 6]]

浙公网安备 33010602011771号