def index(request):
latest_question_list = Question.objects.all().order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = {'latest_question_list':latest_question_list}
return HttpResponse(template.render(context, request))
Run Code Online (Sandbox Code Playgroud)
该函数的第一行在Question.objects.all() - > E1101:类'问题has no objects成员`上出错
我遵循Django文档教程,他们有相同的代码并运行.
我试过调用一个实例.
Question = new Question()
and using MyModel.objects.all()
Run Code Online (Sandbox Code Playgroud)
我的那个类的models.py代码也是这个......
class Question(models.Model):
question_text = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date published')
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
def __str__(self):
return self.question_text
Run Code Online (Sandbox Code Playgroud)
无济于事我仍然有这个错误.
我读过有关pylint的内容并且运行了这个......
pylint --load-plugins pylint_django
Run Code Online (Sandbox Code Playgroud)
哪个没有帮助,即使是github自述文件说...
防止有关Django生成的属性(如Model.objects或Views.request)的警告.
我在virtualenv中运行命令,但什么都没有.
所以任何帮助都会很棒
在使用Django时,我想要安静地保护一些pylint错误.导致最大刺激的两个是从django.db.models.Model派生并访问对象和django.test.TestCase.首先,pylint抱怨任何使用属性'objects'的代码,说它不是成员.在第二个,在对测试用例添加七个测试之后,它抱怨公共方法太多(我猜测TestCase有十四个)
我知道这个问题的第一部分是问题115977的副本,但是这个问题有点陈旧,没有一个解决方案非常好,所以我想我会解决这个问题.
我不想简单地压制pylint中的抱怨,因为我喜欢在其他情况下看到它们.
我正在为我的 Django 项目使用pylint-django,我的模型之一如下:
class Registration(models.Model):
date_added = models.DateTimeField(auto_now_add=True)
event = models.ForeignKey(Event, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
def __str__(self):
first_name = self.user.first_name
last_name = self.user.last_name
return f'{first_name} {last_name}'
Run Code Online (Sandbox Code Playgroud)
运行pylint,我收到以下警告:
events/models.py:61:21: E1101: Instance of 'str' has no 'first_name' member (no-member)
从 pylint-django 的自述文件中,我了解到这是一个已知问题:
“如果您通过名称(作为字符串)引用外键模型,pylint-django 可能无法找到该模型并且会报告问题,因为它不知道该字段的基础类型是什么。”
我的问题是:我应该怎么做才能解决这个问题?我不想压制所有C0111警告。
非常感谢您的帮助!
PS:我正在使用 pylint-django 作为对使用 Pylint 与 Django 的回答
我在可重用的类中有一些代码可以修改某些类型.这是一个简化版本.
class Foo:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
# Add another method outside of the class definition.
# Pylint doesn't care about this, and rates this file 10/10.
Foo.__dict__["current_count"] = lambda self: self.count
Run Code Online (Sandbox Code Playgroud)
在实际代码中,"current_count"是一个变量,而不是一个固定的字符串,这就是为什么我没有写:
Foo.current_count = lambda self: self.count # Cannot do in my scenario.
Run Code Online (Sandbox Code Playgroud)
现在,当我的客户来使用新功能时,Pylint惊恐地跳起来.
import server_api
def main():
foo_count = server_api.Foo()
foo_count.increment()
print foo_count.current_count()
# Pylint complains here:
# E1101: 8:main: Instance of 'Foo' has no 'current_count' member
# I don't want to …Run Code Online (Sandbox Code Playgroud)