Python 类没有';对象';django成员
你有两个不同的问题,而不是像你说的那样只有一个:Python 类没有';对象';django成员,python,django,django-views,Python,Django,Django Views,你有两个不同的问题,而不是像你说的那样只有一个: E1101:类“目的地”没有“对象”成员:是一个警告 这是因为pylint不知道我们的特殊Django变量。一个像pylint这样的插件可能会达到这个目的 E0601:在赋值之前使用变量'Destination':在代码的for循环中定义了一个名为Destination的变量。这不仅是一种不好的做法,因为python变量需要使用小写字母_下划线,而且它会覆盖目标类,这就是导致此错误的原因。你可能想做这样的事情: E1101:Class 'Dest
E1101:类“目的地”没有“对象”成员
:是一个警告
这是因为pylint
不知道我们的特殊Django变量。一个像pylint这样的插件可能会达到这个目的
E0601:在赋值之前使用变量'Destination'
:在代码的for循环中定义了一个名为Destination
的变量。这不仅是一种不好的做法,因为python变量需要使用小写字母_下划线
,而且它会覆盖目标
类,这就是导致此错误的原因。你可能想做这样的事情:
E1101:Class 'Destination' has no 'objects' member
E0601:Using variable 'Destination' before assignment
你在你的观点中写道:
for d in boards:
# Or:
for destination in boards:
尽管如此,我仍然不相信这能解决问题,因为
destinationtext
可能包含HTML,然后会在响应中混淆。通常最好使用模板。您在…中为目标编写了,因此覆盖了对类的引用。这与Pylint无关:这是一个真正的错误,由于for
循环将Destination
视为局部变量。@WillemVanOnsem错误是Destination
没有变量对象
,这是指行Destination.objects.all()
,在创建同名局部变量前两行。否,这是一个派林提示,但是如果运行它,它不会出错。错误发生在OP声明该变量之前的两行。这是个问题,但不是问题。@Nonamel:当然是问题。您认为“在赋值之前使用变量‘Destination’是什么意思?似乎我们都是对的,因为OP有两个错误:E1101:类‘Destination’没有‘objects’成员
和E0601:在赋值之前使用变量‘Destination’
@NonameSL:但这是两个PyLint警告。Pylint抱怨很多不会引起错误,它只是想提高代码质量。没错,但问题的标题是类在django中没有“objects”成员,而这正是OP认为他得到的错误。你是对的,但我只是引用了OP认为他们得到的错误,第二个错误,正如你所说的,不仅仅是一个警告,是一个错误。
for d in boards:
# Or:
for destination in boards:
for Destination in boards:
# ...
from django.http import HttpResponse
from .models import Destination
def index(request):
response_html = '<br>'.join(
Destination.objects.values_list('destinationtext', flat=True)
)
return HttpResponse(response_html)