Cómo obtener resultados de Django Queryset con un campo de fecha y hora formateado

Tengo el modelo Django que tiene claves externas asociadas con otros modelos. Cada modelo tiene los mismos nombres de campo (atributos) created_at y updated_at

En todos los resultados de las consultas django, obtendré valores de fecha y hora.

Model.objects.all().values('created_at') 

Pero quiero formatear el campo de fecha y hora a “DD-MM-YYYY HH: MM: SS” y recortar los milisegundos en los resultados de la consulta de django.

Si uso “extra” y y date_trunc_sql como el siguiente comando

 dt = connection.ops.date_trunc_sql('day','created_date') objects.extra({'date':dt}).values('date') 

Que funciona bien. Pero si hago una consulta como la siguiente, está generando un error de statement ambiguo.

 objects.extra({'date':dt}).values('date', 'x', 'y', 'z') 

¿Como superar este problema?

Tengo la solucion

 data = list(Model.objects.extra(select={'date':"to_char(_.created_at, 'YYYY-MM-DD hh:mi AM')"}).values_list('date', flat='true') 

No es solo tablename.attribute, debe ser dbname_tablename.attribute cuando tenemos varias bases de datos (ambiguas)

que resultará en la lista de valores de fecha y hora de despiece creados en formato ‘YYYY-MM-DD HH: MM’.

No creo values() función de values() tenga nada que ver con el formato del resultado de fecha y hora. Pero ¿por qué te molesta eso? ¿No puedes convertirlos al formato adecuado cuando intentas mostrarlos? Si intenta representarlas en la plantilla, django tiene una date filtro de plantilla para formatear su valor de fecha y hora: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#date