In the Django admin site, how do I change the display format of time fields?

Trindaz picture Trindaz · Aug 27, 2011 · Viewed 29.1k times · Source

I recently added a new model to my site, and I'm using an admin.py file to specify exactly how I want it to appear in the admin site. It works great, but I can't figure out how to get one of my date fields to include seconds in it's display format. I'm only seeing values like "Aug. 27, 2011, 12:12 p.m." when what I want to be seeing is "Aug. 27, 2011, 12:12*:37* p.m."

Answer

Gabriel Ross picture Gabriel Ross · Aug 27, 2011

Try this in the ModelAdmin:

def time_seconds(self, obj):
    return obj.timefield.strftime("%d %b %Y %H:%M:%S")
time_seconds.admin_order_field = 'timefield'
time_seconds.short_description = 'Precise Time'    

list_display = ('id', 'time_seconds', )

Replacing "timefield" with the appropriate field in your model, of course, and adding any other needed fields in "list_display".