解决VSCode编写Django代码时经常提示objects属性等不存在的错误

2018/04/29 posted in  Django学习

如果你仅仅是装了pylint用来检测python代码,那么你在写django程序,尤其是使用model的一些查询语句时,如

App.objects.all()

肯定会经常会被VSCode提示App 没有objects这个属性,虽然这个不影响代码的运行,但作为有强迫症的我们,怎么能容忍我们的代码还没运行就被标识为错误,实在是很影响心情。

Django使用了大量的元编程思想,其中会有大量的修改对象属性和行为的操作,pylint提示的不存在的属性和方法会在程序运行中被django动态的加入,所以并不会影响程序运行。

所以在网上稍微找了下,发现这个叫做pylint-djangopylint的插件可以去掉这些恼人的提示。

安装很简单,和pylint一样

pip3 install pylint-django

然后通过pylint加载这个插件

pylint --load-plugins pylint_django 

在VSCode里可以通过修改setting中的python.linting.pylintArgs这个键的值达到同样的目的

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

然后重启VSCode就好了

参考:
blog.landscape.io