我的模型中有一个DateTimeField。当我将此字段添加到admin.py时,格式显示为4:00 pm,如何将其更改为16:00?第一个月如果我这么做
def time(self): return self.creation_date.timezone().strftime('%Y-%m-%d %H:%M:%S')
字符串时间字段未排序
yqhsw0fo1#
你可以在Django admin中通过创建一个自定义的admin模型并覆盖date_hierarchy属性来更改时间格式。下面是你如何做到这一点:
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)
字符串在这段代码中,YourModel应该被替换为模型的名称。这将改变Django管理界面中的日期格式为24小时格式。至于排序问题,Django管理员应该自动按照降序对DateTimeField进行排序。如果排序不正确,您可能需要检查管理员模型中是否应用了任何自定义排序。如果你想按creation_date字段排序,你可以将其添加到管理模型中的ordering属性中:
YourModel
DateTimeField
creation_date
ordering
class YourModelAdmin(admin.ModelAdmin): ordering = ('-creation_date',)
型这将在Django管理界面中按照creation_date降序对模型示例进行排序。
lxkprmvk2#
您可以使用DATETIME_FORMAT设置覆盖该格式:https://docs.djangoproject.com/en/4.2/ref/settings/#datetime-format默认值:'N j,Y,P'(例如:2003年2月4日下午4点)用于在系统的任何部分显示日期时间字段的默认格式。请注意,如果将USE_L10N设置为True,则区域设置指定的格式具有更高的优先级,并将被应用。请参阅允许的日期格式字符串。
DATETIME_FORMAT
2条答案
按热度按时间yqhsw0fo1#
你可以在Django admin中通过创建一个自定义的admin模型并覆盖
date_hierarchy
属性来更改时间格式。下面是你如何做到这一点:字符串
在这段代码中,
YourModel
应该被替换为模型的名称。这将改变Django管理界面中的日期格式为24小时格式。至于排序问题,Django管理员应该自动按照降序对
DateTimeField
进行排序。如果排序不正确,您可能需要检查管理员模型中是否应用了任何自定义排序。如果你想按
creation_date
字段排序,你可以将其添加到管理模型中的ordering
属性中:型
这将在Django管理界面中按照
creation_date
降序对模型示例进行排序。lxkprmvk2#
您可以使用
DATETIME_FORMAT
设置覆盖该格式:https://docs.djangoproject.com/en/4.2/ref/settings/#datetime-format默认值:'N j,Y,P'(例如:2003年2月4日下午4点)
用于在系统的任何部分显示日期时间字段的默认格式。请注意,如果将USE_L10N设置为True,则区域设置指定的格式具有更高的优先级,并将被应用。请参阅允许的日期格式字符串。