класс не имеет члена 'objects' - PullRequest
       0

класс не имеет члена 'objects'

0 голосов
/ 06 октября 2019

так что я новичок в Django и я пытаюсь сделать небольшой рынок. я сделал приложение продукта. это внутренние коды: это для views.py:

from django.shortcuts import render
from django.http import HttpResponse
from products.models import product


def index(request):
  Products = product.objects.all()
  return render(request, 'index.html', {'products': Products})

def new(request):
  return HttpResponse('New Product')

это для моделей. эксперимент:

<h1>Products</h1>
<ul>
  {% for product in Products %}
    <li>{{ product.name }}</li>
  {% endfor %}
</ul>

и некоторые другие обычные коды. но я получаю ошибку Pylint для этой части:

product.objects.all()

, пожалуйста, помогите мне! спасибо

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Это потому, что PyLint ничего не знает о метаклассах Django, которые предоставляют атрибут objects. В любом случае, ваша E1101 ошибка - это просто предупреждение, и вы можете отключить его или использовать специальный плагин pylint-django , чтобы PyLint знал о магии, которую совершает Django.

Другая проблемавашего кода неверное использование контекста, переданного в вызов render :

return render(request, 'index.html', {'products': Products})

Контекст - это объект Python Dictionary , в котором будет доступен valueв шаблоне через key. Вы передаете свой набор запросов с помощью ключа products, но итерируете по ключу Products (обратите внимание на первую заглавную букву) в вашем шаблоне, который не задан, поэтому ваш шаблон не будет ничего визуализировать.

0 голосов
/ 06 октября 2019

Попробуйте с этим Использовать pylint --generated-members = objects

Установить Django pylint:

pip install pylint-django

ctrl + shift + p> Предпочтения: Настроить языкОпределенные параметры> Python

Файл settings.json, доступный для языка Python, должен выглядеть следующим образом:

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

    "[python]": {

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...