Pylint выдает ложные ошибки в проекте Django

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

Недавно я начал изучать Django, и сегодня, следуя официальному руководству Документация по Django, часть 4, pylint не смог распознать пару утверждений, связанных с моделью.

selected_choice = question.choice_set.get(pk=request.POST['choice'])
return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) 

Ошибки, которые я получаю от pylint, приведены ниже.

choice_set: Unknown
Cannot access member "choice_set" for type "Question"
  Member "choice_set" is unknownPylancereportGeneralTypeIssues

and

id: Unknown
Cannot access member "id" for type "Question"
  Member "id" is unknownPylancereportGeneralTypeIssues

Сначала я подумал, что проблема может заключаться в том, что я забыл сделать перекрестные ссылки на модели «Вопрос» и «Выбор», но это не так. Для справки, здесь соответствующие файлы для проекта

Я могу запустить проект без ошибок.

Чтобы на мгновение решить эту проблему, я просто сказал pylint игнорировать это, но я не придерживаюсь этой лучшей практики. Может быть, я что-то упускаю здесь?

Ниже кода, который я написал для этих двух строк. Любые подсказки?

#(...)
selected_choice = question.choice_set.get(pk=request.POST['choice']) #type: ignore
#(...)
return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) #type: ignore

Решение в пробе:

  1. Пилинт-Джанго
  • установлен через pip (в виртуальной среде)
  • добавлены параметры в файл settings.json, как показано ниже

Ничего не изменилось.

Вы использовали плагин pylint django? pypi.org/project/pylint-django

Pierre.Sassoulas 10.01.2023 14:35

@Pierre.Sassoulas спасибо за информацию. Я установил пакет через pip, но, похоже, я не могу заставить его работать с vs-кодом. Нужно ли было возиться с .vscode>settings.json или launch.json, если да, то каковы настройки?

Falconius 11.01.2023 00:41

Может ли этот ответ решить вашу проблему?

MingJie-MSFT 11.01.2023 06:25
Потяните за рычаг выброса энергососущих проектов
Потяните за рычаг выброса энергососущих проектов
На этой неделе моя команда отменила проект, над которым я работал. Неделя усилий пошла насмарку.
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит...
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
Учебник по веб-скрапингу
Учебник по веб-скрапингу
Привет, ребята... В этот раз мы поговорим о веб-скрейпинге. Целью этого обсуждения будет узнать и понять, что такое веб-скрейпинг, а также узнать, как...
0
3
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Как упоминал Пьер, pylint-django решает эти проблемы.

Если вы используете vs-code, вы не найдете расширения на торговой площадке. Это означает, что вам нужно будет установить pylint через pip. Vs-code не распознает пакет, поэтому вам нужно будет добавить некоторые конфигурации и поиграться с вашей рабочей областью или пользовательскими настройками.json

Статья PyLint для Django в VSCode тоже помог

Ответ принят как подходящий

Вы можете использовать команду pip install pylint-django для установки pylint-django.

И добавьте следующие коды в свой settings.json:

"python.linting.pylintArgs": [
    "--load-plugins=pylint_django"
]

Другие вопросы по теме