【问题标题】:How to display only date from datetime field in modelAdmin in Django admin panel?如何在 Django 管理面板的 modelAdmin 中仅显示日期时间字段中的日期?
【发布时间】:2019-12-04 20:08:05
【问题描述】:

我有一个模型,它有一个列created_at,它实际上是一个datetime 字段,格式为16.07.2019 12:26:37

我只想在 Django管理面板 中的 created_at 字段中显示 date

如果我在创建modelAdmin时在list_display中提到'created_at',我可以显示整个字段的值,即datetime

我怎样才能像16.07.2019这样在结果页面中只显示date值?

在注册 modelAdmin 时是否有任何内置过滤器可以做到这一点?

Python: 3.7.3
Django: 2.1.5

【问题讨论】:

    标签: python django django-models django-admin django-admin-filters


    【解决方案1】:

    您可以向ModelAdmin 类添加方法。

    @admin.register(YourModel)
    class YourModelAdmin(admin.ModelAdmin):
        list_display = ('get_date_formatted',)
    
        def get_date_formatted(self, obj):
            if obj:
                return obj.date.date()
        get_date_formatted.admin_order_field = 'date'
        get_date_formatted.short_description = 'date'
    

    【讨论】:

    • 我刚才想通了。谢谢,顺便说一句。它奏效了。
    • 如果我有两个日期字段怎么办?
    • @ArindamRoychowdhury 你需要两种方法,例如get_date_start_formattedget_date_end_formattedreturn obj.date.date() 剥离的行是 <model_instance>.<model_field>.<method>(),因此您需要确保从对象中检索到的模型字段是指模型上的所需字段。
    猜你喜欢
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2013-11-25
    • 2021-04-30
    • 2022-08-22
    • 2023-03-06
    • 2010-12-27
    相关资源
    最近更新 更多