尝试在管理表单上显示DateTimeField时出现Django异常

mac*_*guy 2 django django-models django-admin

我有一个定义datetimefield的模型:

dateAdded = models.DateTimeField("Date Added", auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

在我的ModelAdmin子类中,我试图在以下字段集中显示该字段:

fieldsets = (
    (None, {
        'fields': (
            ("modelId", "altModelIds", "modelName", "dateAdded"),
            ("manufacturer", "protocol", "category"),
            ("versionAdded", "proOnly", "published", "discontinued"),
            "notes"
        )
    }),
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

FieldError: Unknown field(s) (dateAdded) specified for Device
Run Code Online (Sandbox Code Playgroud)

有趣的是,当我将它添加到list_display时:

list_display = ("modelName", "published", "modelId", "altModelIds", "manufacturer", "protocol", "category", "dateAdded")
Run Code Online (Sandbox Code Playgroud)

它工作正常.我确定我只是在做一些愚蠢的事情(我已经离开Django大约8个月了)但我无法弄明白.任何帮助,将不胜感激.

mac*_*guy 6

由于标记为auto_now_add的datetimefield模型字段类型也隐式赋予editable = False,因此它们不会显示在更改表单上.如果在ModelAdmin类的字段集中指定字段,则显然不会将其视为模型中的字段,因为它是只读的.实际上是愚蠢的错误消息,因为它在模型中,但就是这样.

现在要弄清楚如何在模型的更改表单上显示只读字段(但这是一个不同的问题).