DateTimeField 未显示在管理系统中

新手上路,请多包涵

为什么我的“日期”字段没有出现在管理系统中?

在我的 admin.py 文件中

from django.contrib import admin
from glasses.players.models import *
admin.site.register(Rating)

评级模型有一个名为“日期”的字段,看起来像这样

date = models.DateTimeField(editable=True, auto_now_add=True)

但是在管理系统中,该字段不显示,即使 editable 设置为 True

有人有什么主意吗?

原文由 dotty 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 455
2 个回答

我相信原因在于 auto_now_add 领域。

这个答案

设置了 auto_now 属性的任何字段也将继承 editable=False,因此不会显示在管理面板中。

文档 中还提到:

按照目前的实施,将 auto_now 或 auto_now_add 设置为 True 将导致该字段具有 editable=False 和 blank=True 设置。

这确实有意义,因为如果在保存对象时要用当前日期时间覆盖该字段,则没有理由让该字段可编辑。

原文由 Shawn Chin 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你真的想在管理面板中看到日期,你可以在 admin.py 中添加 readonly_fields

 class RatingAdmin(admin.ModelAdmin):
    readonly_fields = ('date',)

admin.site.register(Rating,RatingAdmin)

您指定的任何字段将最后添加到可编辑字段之后。要控制顺序,您可以使用 fields 选项。

其他信息可从 Django 文档 中获得。

原文由 Hunger 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题