问题:VSCode中,代码result = Article.objects.filter(id=id),报错:Class 'Article' has no 'objects' memberpylint(no-member)
原因:代码本身没错,直接运行该Python程序是可以成功操作数据库模型的。报错是因为,VSCode中的Python插件默认使用pylint,它是VSCode的Python语法检查器,pylint是静态检查,在用第三方库的时候有些成员只有在运行代码的时候才会被建立,它就找不到成员。比如django.db.models.Model的模型层对象在编译时没有objects属性,但是运行时却有,所以造成我们在编写代码时,pylint会报"has no 'objects' member"之类的错误。
解决方法:在VSCode,文件 => 首选项 => 设置里面,修改settings.json文件的"python.linting.pylintArgs"配置。
方法一:"python.linting.pylintArgs":["--generate-members"]。
方法二:把pylint工具换成pylint-django工具。
1、pip install pylint-django;
2、"python.linting.pylintArgs" :[ "--load-plugins=pylint_django" ]

图1
更多pylint内容可以参考:https://code.visualstudio.com/docs/python/linting#_default-pylint-rules