Django models Django管理错误指出表单中缺少一个字段

Django models Django管理错误指出表单中缺少一个字段,django-models,django-admin,Django Models,Django Admin,获取我的admin.py文件时出错: 'BaseAdmin.fieldsets[1][1]['fields']'指表单中缺少的字段'publish_on' 我的班级看起来像: class Base(models.Model): ... publish_on = models.DateTimeField(auto_now=True, db_index=True) ... class BaseAdmin(admin.ModelAdmin): ... fiel

获取我的admin.py文件时出错: 'BaseAdmin.fieldsets[1][1]['fields']'指表单中缺少的字段'publish_on'

我的班级看起来像:

class Base(models.Model):
    ...
    publish_on = models.DateTimeField(auto_now=True, db_index=True)
    ...
class BaseAdmin(admin.ModelAdmin):
    ...
    fieldsets = [
        ('Dates', {
            'fields': ('publish_on',)
        }),
    ]
我的admin.py看起来像:

class Base(models.Model):
    ...
    publish_on = models.DateTimeField(auto_now=True, db_index=True)
    ...
class BaseAdmin(admin.ModelAdmin):
    ...
    fieldsets = [
        ('Dates', {
            'fields': ('publish_on',)
        }),
    ]

如果我将管理类更改为“pass”或只是注册模型类,则会显示日期时间字段。

此错误是由“立即自动”和“立即自动添加”引起的。要纠正这一点,请添加

readonly_fields = ("publish_on",)

在BaseAdmin中(仅在django 1.2及更新版本中)。

如果您确实希望使用auto_now_add,但随后保留更改日期的可能性,则可以在模型字段中使用
default=datetime.now
。这将在管理中设置默认值,但允许用户更改它,并在内联中工作。

您使用的是自定义表单吗?没有自定义表单。如果我使用我的自定义管理类,并且没有定义任何字段集,那么不是所有的模型字段都会显示…再次缺少一些datetime字段。在我的datetimefields模型中,我的auto_now=True-如果我删除了这些字段,那么这些字段将显示出来。还有人看到这种行为吗?我正在使用django 1.2.1 btw-我将升级到最新版本,看看是否仍然存在auto_now问题。的精确副本