Форум программистов, компьютерный форум, киберфорум
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. Показов 6424. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru