AttributeError: 'NoneType' object has no attribute 'has_header'

18 мая 2016 г. 1:53

Когда возникает ошибка следующего рода:

    if not response.has_header('Last-Modified'):
 
AttributeError: 'NoneType' object has no attribute 'has_header'

то причина может быть самая разнообразная. Чаще всего, какой-то метод не возвращает response, поэтому проверьте все свои views на то, что они возвращают HTTPResponse, а также проверьте все переопределённые методы в классах.

Так, например, однажды мой переопределённый метод change_view в классе admin ничего не возвращал при определённом условии:

def change_view(self, request, object_id, form_url='', extra_context=None):
    obj = self.model.objects.get(id=object_id)

    for color in obj.colors.all():
        for pic in color.pics.all():
            # some code

        return super(ProductAdmin, self).change_view(request, object_id, form_url, extra_context)

Как видите, если obj.colors.all() пуст, то change_view ничего не вернёт (а точнее вернёт None), а затем произойдёт ошибка. Причём по трейсбеку эту ошибку я не смог отследить, и из-за этого я её не так быстро исправил.

Надеюсь, ваша ошибка найдётся быстро :)

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

Автор статьи

Права на использование материала, расположенного на этой странице http://vivazzi.ru/it/attributeerror-nonetype-object-has-no-attribute-has_header/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.ru/it/attributeerror-nonetype-object-has-no-attribute-has_header/">http://vivazzi.ru/it/attributeerror-nonetype-object-has-no-attribute-has_header/</a>

Подробнее: Правила использования сайта

Комментариев: 0

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

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте