2010-11-06 63 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。這在管理員中設置了默認值,但讓用戶改變它,並且它以內聯方式工作。