Ошибка администратора Django в том, что в форме отсутствует поле - PullRequest
2 голосов
/ 06 ноября 2010

Получение ошибки с моим файлом 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 ]

6 голосов
/ 07 декабря 2010

Эта ошибка вызвана auto_now, а также auto_now_add.Чтобы исправить это, добавьте

readonly_fields = ("publish_on",)

в BaseAdmin (только в django 1.2 и новее).

4 голосов
/ 11 августа 2011

Если вы хотите использовать auto_now_add, но затем оставить открытой возможность изменения даты, вы можете использовать default=datetime.now в поле модели.Это устанавливает значение по умолчанию для администратора, но позволяет пользователю изменить его, и оно работает в строках.

...