Django Admin错误地指出表单中缺少的字段

时间:2010-11-06 17:01:14

标签: 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)
    ...

我的admin.py看起来像:

class BaseAdmin(admin.ModelAdmin):
    ...
    fieldsets = [
        ('Dates', {
            'fields': ('publish_on',)
        }),
    ]

如果我使用'pass'更改我的管理类或只是注册模型类,那么日期时间字段就会出现。

2 个答案:

答案 0 :(得分:6)

此错误由auto_now和auto_now_add引起。要补救那个添加

readonly_fields = ("publish_on",)

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

答案 1 :(得分:4)

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