Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 5

AttributeError: 'NoneType' object has no attribute

28.03.2021, 21:22. Показов 6448. Ответов 6

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
class Technic(models.Model):
    categories_list = (
        (None, "Выберите категорию"),
        ("tv", "Телевизоры, мониторы"),
        ("phone", "Телефоны, планшеты"),
    )
    name = models.CharField(max_length=30, db_index=True, unique=True, verbose_name="Название техники")
    price = models.IntegerField(default=0, validators=[validators.MinValueValidator(0)],
                                error_messages={'min_value': 'Стоимость ремонта не может быть меньше 0'},
                                verbose_name="Стоимость ремонта")
    category = models.CharField(max_length=10, choices=categories_list, verbose_name="Категория")
Python
1
2
3
4
5
6
7
8
9
class TechnicView(ListView):
    def get_queryset(self):
        return Technic.objects.filter(category__startswith=self.kwargs['slug'])
 
    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(*args, **kwargs)
        context['current_category'] = Technic.objects.filter(category__startswith=self.kwargs['slug']).\
            first().get_category_display()
        return context
Python
1
2
urlpatterns = [
    path('<slug>/', TechnicView.as_view(), name='tech'),
В шаблон html вставляю {{ current_category }}.
При переходе по ссылке tv в шаблоне как и надо отображается "Телевизоры, мониторы".
Список technic_list данные из БД подтягивает нормально.
Вроде всё правильно работает.

Но в терминале постоянно лезет ошибка:
Code
1
2
3
 File ".../views.py", line ..., in get_context_data
    context['current_category'] = Technic.objects.filter(category__startswith=self.kwargs['slug']).\
AttributeError: 'NoneType' object has no attribute 'get_category_display'
З.Ы. Сорри если глупый вопрос. Просто новичок в Django
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2021, 21:22
Ответы с готовыми решениями:

'NoneType' object has no attribute
Пытаюсь добавить товар в корзину. Хочу начать с простого. Есть 3 модели: Product, CartItem, Cart. Для начала хочу взять первую корзину...

Ошибка 'NoneType' object has no attribute 'auser'
Необходимо автоматически прикреплять имя автора к созданной им статье. В процессе создания происходит ошибка 'NoneType' object has no...

AttributeError: 'unicode' object has no attribute 'get'
Учу django 1.1 Выдаёт ошибку AttributeError ... 'unicode' object has no attribute 'get' views.py #-*- coding: utf-8...

6
11 / 10 / 3
Регистрация: 25.02.2021
Сообщений: 21
28.03.2021, 22:15
Python
1
Technic.objects.filter(category__startswith=self.kwargs['slug']).first().get_category_display()
self.kwargs['slug']).first() вернул None
У None нет get_category_display() метода.
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 5
28.03.2021, 23:10  [ТС]
self.kwargs['slug'].first() возвращает <Query set>

И метод ...display() срабатывает как надо. На сайте вся инфа отображается как и задумано.

Но в терминале выдаётся ошибка.

Наверно можно на неё забить. Но боюсь в дальнейшем это может аукнуться.
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 5
29.04.2021, 21:39  [ТС]
Случайно обнаружилось неожиданное решение проблемы.

В HTML файле прописал ссылку на favicon.ico

Code
1
<link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>
и ошибка перестала вылазить в терминале.

Необъяснимо, но факт
0
11 / 10 / 3
Регистрация: 25.02.2021
Сообщений: 21
29.04.2021, 21:44
Цитата Сообщение от FreddyNov Посмотреть сообщение
и ошибка перестала вылазить в терминале.
Необъяснимо, но факт
100% решилось не по этой причине. Судя по ошибке в базе данных не было сущностей по фильтрам. Питоновской ошибке вообще пофиг что в html будет лежать.

Удалите все сущности модели Technic и ошибка вернется)
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 5
30.04.2021, 20:35  [ТС]
Цитата Сообщение от rakhmatulin Посмотреть сообщение
Судя по ошибке в базе данных не было сущностей по фильтрам.
В базе данные есть. И соответствующие фильтру тоже. Контроллер их нормально достаёт и передаёт в шаблон, где они нормально отображаются (даже с ошибкой в терминале при этом).

Цитата Сообщение от rakhmatulin Посмотреть сообщение
100% решилось не по этой причине.
Убираю из шаблона ссылку на favicon
Code
1
<link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>
и в терминале снова постоянно появляется эта ошибка.

Возвращаю в шаблон <link ... />, ошибка пропадает.

Так что на счёт 100% я бы не был так уверен



Ошибка показывается даже если я не использую контроллер TechnicView.

Даже если просто открываю главную страницу сайта

Python
1
2
3
4
urlpatterns = [
    ...
    path('', index, name='index'),
]
Python
1
2
def index(request):
    return render(request, 'main/index.html')
она открывается нормально, но при этом в терминале ошибка метода get_context_data контроллера TechnicView, которая указана выше.
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 5
01.05.2021, 13:20  [ТС]
Захожу в админку и тоже получаю ошибку в терминале

Code
1
2
3
4
5
6
Internal Server Error: /favicon.ico/
Traceback (most recent call last):
...
File "...views.py", line 23, in get_context_data
    context['current_category'] = Technic.objects.filter(category__startswith=self.kwargs['slug']).\
AttributeError: 'NoneType' object has no attribute 'get_category_display'
Добавлено через 49 минут

Убрал ссылки на favicon.ico из шаблонов.

Добавил в urlpatterns в url.py уровня проекта.
Code
1
path('favicon.ico', RedirectView.as_view(url='/static/images/favicon.ico', permanent=True))
И теперь ошибка не вылазит.

Цитата Сообщение от rakhmatulin Посмотреть сообщение
100% решилось не по этой причине.
По ходу дела 100% по этой причине
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.05.2021, 13:20
Помогаю со студенческими работами здесь

AttributeError: 'DeferredAttribute' object has no attribute 'name' | Django
Это файл модели. class artsl(models.Model): obrs = models.CharField('Название', null=True, max_length=250) scores =...

AttributeError at /homepage/ 'tuple' object has no attribute 'split'
Создаю свой блок, столкнулся с ошибкой, какой день не могу её исправить. Сама ошибка: AttributeError at /homepage/ 'tuple' object has...

Ошибка - AttributeError: 'function' object has no attribute 'as_view'
Друзья, помогите разобраться с ошибкой, что делаю не так? Класс для создания новой записи, при добавлении в файл urls выдает ошибку...

Как прочитать содержимое request.FILES.get и обойти ошибку 'NoneType' object has no attribute 'read'?
Я через ajax отправляю картинку, которую надо сохранить в определённой папке. Я это думаю сделать так: прочитать загруженный файл, и его...

AttributeError: 'NoneType' object has no attribute 'text'
Вот отрывок из кода: for i in soup.find_all('div', class_ = 'info'): title_sxodim += i.find('a', class_ = 'title').text.strip() +...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru