Перегрузка changelist_view без изменений, вызывающих ошибки - PullRequest
0 голосов
/ 17 января 2019

Перегрузка changelist_view и вызов super () приводят к ошибкам атрибута.

Я создаю суперосновную панель мониторинга и переопределяю метод changelist_view класса ModelAdmin. Однако это переопределение приводит к ошибке «Объект NoneType не имеет атрибута has_header». Однако я буквально ничего не делаю, кроме переопределения changelist_view и вызова суперкласса - я еще не внес никаких изменений.

In admin.py

class SummaryAdmin(admin.ModelAdmin):

    def changelist_view(self, request, extra_context=None):
        response = super().changelist_view(request, extra_context)

Соответствующая модель в models.py

class Summary(Failure):
    class Meta:
        proxy = True
        verbose_name = 'Failure Summary'
        verbose_name_plural = 'Failures Summary'

Это буквально все содержимое модели администратора. Когда я пытаюсь перейти в админ панель django, я получаю ошибку атрибута. Насколько я могу судить, это ничем не отличается от того, чтобы вообще не переопределять changelist_view, но если я удаляю переопределение, все работает как обычно.

Обновление: я буквально скопировал код changelist_view из options.py вместо вызова суперкласса, и я не получаю эту ошибку, поэтому я подозреваю, что это как-то связано с тем, как я вызываю суперкласс.

1 Ответ

0 голосов
/ 17 января 2019

Проблема с приведенным выше кодом заключается в отсутствии оператора возврата. changelist_view возвращает ответ, а перегрузка, которая не возвращается, вызовет всевозможные ошибки. Это простая ошибка, если вы привыкли к языкам, которые не позволяют вам компилироваться, если вы забыли свой возврат или он не соответствует указанному типу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...