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

DateTimeField已存入数据库但AdminSite显示为null问题求助

修复Django Admin中DateTimeField显示为null的问题

以下是针对该问题的具体修复步骤:

  • 检查Admin类的字段配置
    确保模型Admin类的list_display属性中包含正确的字段名,注意大小写必须和模型中的字段完全一致。比如模型里定义的是ordered_date,Admin里不能写成Ordered_date。示例代码:

    from django.contrib import admin
    from .models import YourModel
    
    class YourModelAdmin(admin.ModelAdmin):
        list_display = ('id', 'ordered_date', ...)  # 确保ordered_date在这里
    
    admin.site.register(YourModel, YourModelAdmin)
    
  • 验证模型字段定义
    检查模型中DateTimeField的定义是否正确:如果使用auto_now_add=True,它会在对象首次创建时自动设置当前时间;如果是手动赋值,要确认在保存对象前已经正确设置了该字段的值,且没有后续代码覆盖这个值。示例:

    from django.db import models
    
    class YourModel(models.Model):
        # 自动赋值创建时间
        ordered_date = models.DateTimeField(auto_now_add=True)
        # 手动赋值的情况
        # ordered_date = models.DateTimeField(null=False)
    
  • 清除缓存并重启服务
    运行以下命令清除Django缓存(适用于Django 4.2及以上版本),然后重启Django服务器,刷新Admin页面:

    python manage.py clearcache
    
  • 检查Admin的自定义逻辑
    如果你在Admin类中自定义了get_queryset或者字段显示方法(比如def get_ordered_date(self, obj)),要确认这些方法没有错误地返回None或null值。

  • 确认数据库字段匹配
    检查数据库中对应的ordered_date字段类型是否为datetime类,和模型定义的DateTimeField一致,避免类型不匹配导致的显示异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:35:00