因此,我在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')
这是用于models.py:
from django.db import models
class product(models.Model):
name = models.CharField(max_length=150)
price = models.FloatField()
stock = models.IntegerField()
image_url = models.CharField(max_length=2083)
我还制作了一个模板文件夹,并将其放入其中进行实验:
<h1>Products</h1>
<ul>
{% for product in Products %}
<li>{{ product.name }}</li>
{% endfor %}
</ul>
和其他一些常规代码。但我在这部分出现了一个pylint错误:
product.objects.all()
请帮助我!谢谢
答案 0 :(得分:1)
enter code here
"python.linting.pylintArgs": [
"--load-plugins=pylint_django",
"--errors-only"
],
答案 1 :(得分:0)
尝试一下 使用pylint --generation-members = objects
安装Django pylint:
pip install pylint-django
ctrl + shift + p>首选项:配置特定于语言的设置> Python
可用于python语言的settings.json如下所示:
{
"python.linting.pylintArgs": [
"--load-plugins=pylint_django"
],
"[python]": {
}
}
答案 2 :(得分:0)
这是因为PyLint
对提供objects
属性的Django元类一无所知。无论如何,您的E1101 error只是警告,您可以禁用它或使用特殊的pylint-django插件使PyLint知道Django的魔力。
您的代码的另一个问题是传递给render调用的上下文使用不正确:
return render(request, 'index.html', {'products': Products})
Context是一个python dictionary对象,其中value
可通过key
在模板中访问。您正在通过products
键传递查询集,但是遍历未设置的模板中的Products
(请记住第一个大写字母)键,因此您的模板将不会呈现任何内容。
答案 3 :(得分:0)
还有另一个选项:~/.pylintrc 并编辑以下行:
load-plugins=
并在其中添加 django 插件:
load-plugins=pylint_django
当然需要先安装:
python3 -m pip install pylint_django