提问人:Aidar 提问时间:11/3/2023 更新时间:11/3/2023 访问量:40
如何在 django 中更改 12 小时格式?
How do I change the 12 hour format in django?
问:
我的模型中有一个 DateTimeField。
当我将此字段添加到 admin.py 时,格式显示为下午 4:00,如何将其更改为 16:00?
creation_date = models.DateTimeField(auto_now_add=True,)
如果我这样做
def time(self):
return self.creation_date.timezone().strftime('%Y-%m-%d %H:%M:%S')
该时间字段未排序
答:
0赞
Jean-Louis Mbaka
11/3/2023
#1
你可以通过创建自定义管理模型并覆盖属性来更改 Django admin 中的时间格式。这是你如何做到的:date_hierarchy
from django.contrib import admin
from .models import YourModel
@admin.register(YourModel)
class YourModelAdmin(admin.ModelAdmin):
date_hierarchy = 'creation_date'
date_hierarchy_drilldown = False
def changelist_view(self, request, extra_context=None):
self.date_hierarchy = request.GET.get('dh', 'creation_date')
return super().changelist_view(request, extra_context=extra_context)
在此代码中,应替换为模型的名称。这会将 Django 管理界面中的日期格式更改为 24 小时格式。YourModel
至于排序问题,Django 管理员应该自动按降序排序。如果排序不正确,您可能需要检查管理模型中是否应用了任何自定义排序。DateTimeField
如果要按字段排序,可以将其添加到管理模型中的属性:creation_date
ordering
class YourModelAdmin(admin.ModelAdmin):
ordering = ('-creation_date',)
这将在 Django 管理界面中按降序对模型实例进行排序。creation_date
0赞
CoffeeBasedLifeform
11/3/2023
#2
您可以使用以下设置覆盖格式:https://docs.djangoproject.com/en/4.2/ref/settings/#datetime-formatDATETIME_FORMAT
默认值:“N j, Y, P”(例如,2003 年 2 月 4 日下午 4 点)
用于在任何位置显示日期时间字段的默认格式 系统的一部分。请注意,如果 USE_L10N 设置为 True,则 区域设置指定的格式具有更高的优先级,将应用 相反。请参阅允许的日期格式字符串。
评论