2010-11-06 56 views
2

与我的admin.py文件发生错误: 'BaseAdmin.fieldsets [1] [1] ['fields']'指的是'publish_on'字段从表单中缺少。Django Admin出错,表格中缺少一个字段

我的课是这样的:

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',) 
     }), 
    ] 

如果我改变了我的管理类“及格”或只是与模型类注册,则日期时间字段显示。

+0

您是否使用任何自定义表单? – 2010-11-06 17:04:15

+0

没有自定义表单。如果我使用我的自定义管理类而不定义任何字段集,则不会显示所有模型字段...再次缺少一些日期时间字段。 – JoeManFoo 2010-11-06 17:40:16

+0

在我的datetimefields模型中,我有auto_now = True - 如果删除它们,那么字段将显示。其他人看到这种行为? – JoeManFoo 2010-11-06 21:44:21

回答

6

此错误是由auto_now和auto_now_add引起的。为了弥补这个添加

readonly_fields = ("publish_on",) 

在你的BaseAdmin(只在Django的1.2和更新版本)。

3

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

相关问题