Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django管理站点中,如何更改时间字段的显示格式?_Python_Django_Date Formatting - Fatal编程技术网

Python 在Django管理站点中,如何更改时间字段的显示格式?

Python 在Django管理站点中,如何更改时间字段的显示格式?,python,django,date-formatting,Python,Django,Date Formatting,我最近在我的网站上添加了一个新模型,我正在使用一个admin.py文件来指定我希望它在管理网站中的显示方式。它工作得很好,但我不知道如何让我的一个日期字段在其显示格式中包含秒。我只看到“2011年8月27日,12:12 p.m.”之类的值,而我想看到的是“2011年8月27日,12:12*:37*p.m.”请在模型管理员中尝试以下内容: def time_seconds(self, obj): return obj.timefield.strftime("%d %b %Y %H:%M:%

我最近在我的网站上添加了一个新模型,我正在使用一个admin.py文件来指定我希望它在管理网站中的显示方式。它工作得很好,但我不知道如何让我的一个日期字段在其显示格式中包含秒。我只看到“2011年8月27日,12:12 p.m.”之类的值,而我想看到的是“2011年8月27日,12:12*:37*p.m.”

请在模型管理员中尝试以下内容:

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', )

当然,在您的模型中用适当的字段替换“timefield”,并在“list\u display”中添加任何其他需要的字段。

我在这里结束了深入研究,但对我的应用程序应用了不同的方法

更改django管理员默认格式可以通过更改所需每种类型的django语言环境格式来完成

将以下内容放在admin.py文件(或settings.py)中,以更改django管理员的日期时间默认格式

从django.conf.locale.es导入格式为es_格式
es_formats.DATETIME_FORMAT=“d M Y H:i:s”
它将更改该文件(或设置中的整个站点)上ModelAdmin的日期时间格式

正如@Alan Illing在评论中指出的那样,它不会破坏管理员日期时间过滤器和订单功能

希望这对以后有所帮助


额外信息:

您可以为django中的每个可用区域设置更改它,这是非常多的

您可以使用此方法更改以下格式

从django.conf.locale.es导入格式为es_格式
es_格式。日期时间_格式
es_格式。数字_分组
es_formats.DATETIME_输入_格式
es_格式。SHORT_DATETIME_格式
es_格式。日期_格式
es\ U格式。短\日期\格式
es\ U格式。日期\输入\格式
es_格式。千位分隔符
es_格式。十进制分隔符
es_格式。时间_格式
每周的第一天
es_格式。年\月\格式
es_格式。月\日\格式

如果您尝试了gabriel的答案,但没有成功,请尝试在
settings.py
中设置
USE\u L10N=False
,它对我有效

请注意,如果USE_L10N设置为True,则区域设置指定的格式具有更高的优先级,将改为应用


请参阅:

这样做会使用管理员自动过滤器中断。我猜您的意思是,是否有一种方法可以格式化时间戳,但保留管理员中的排序功能?是的,尝试在设置时间的位置添加time_seconds.admin_order_field='timefield'。short_description。请记住更改实际使用的本地设置,如从django.conf.locale.en导入格式为en_格式,然后将
en_格式。DATETIME_FORMAT=“d-m-Y H:i:s”
只是省略antkowcz回答:对于英语用法:
从django.conf.locale.en导入格式为en_格式,然后导入en_格式。DATETIME_格式=“d-m-Y H:i:s”
对于西班牙语用法:
从django.conf.locale.es导入格式为es_格式。DATETIME_格式=“d-m-Y H:i:s”
等等……如何在列表显示(“a\u time\u field”)上强制执行此时间格式?对于am/pm使用
a
。例如,
“m/d/y,h:ia”
将返回类似于
03/09/2103:12 p.m.