You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin面板不显示Date字段问题求助

Django Admin不显示auto_now_add=True日期字段的解决办法

问题原因

当字段设置auto_now_add=True时,Django会自动把该字段的editable属性设为False,而Admin面板默认只展示editable=True的字段,所以这个日期字段就不会显示出来。

解决方法

方法1:仅在Admin中显示(只读)

不需要修改Model代码,直接在对应的Admin类里指定要显示的字段即可:

from django.contrib import admin
from .models import 你的Model类名

class 你的ModelAdmin(admin.ModelAdmin):
    # 列表页显示该日期字段
    list_display = ('其他字段名', 'date')
    # 详情页显示该日期字段(只读状态)
    fields = ('其他字段名', 'date')

admin.site.register(你的Model类名, 你的ModelAdmin)

这样设置后,不管是列表页还是详情页,都会展示date字段,因为是只读状态,不会允许修改,符合auto_now_add=True的设计初衷。

方法2:允许在Admin中修改日期字段(可选)

如果需要偶尔手动修改这个日期值,可以调整Model里的字段定义,用default替代auto_now_add,并显式设置editable=True:

from django.utils import timezone

date = models.DateField(default=timezone.now, editable=True)

这样字段默认会在创建时填充当前日期,同时能在Admin面板里编辑修改。修改后记得执行数据库迁移命令:

python manage.py makemigrations
python manage.py migrate

内容的提问来源于stack exchange,提问作者user21944756

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:37:02