Форум программистов, компьютерный форум, киберфорум
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. Показов 6489. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru