Syntastic + Django

Fal*_*ion 11 django syntax-checking syntastic

我刚开始在Django上开发,然后我想在它上面使用Syntastic语法检查器是个好主意.

问题在于它抱怨某些事情是错误的,事实上,事实并非如此.

例子:

  1. 对于

    from django.core.urlresolvers import reverse
    
    Run Code Online (Sandbox Code Playgroud)

    我明白了:

    error| [F0401] Unable to import 'django.core.urlresolvers'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 对于

    amount = self.sale_set.filter(date__year=year).aggregate(sum=Sum('amount'))["sum"]
    
    Run Code Online (Sandbox Code Playgroud)

    我得到了(哪里selfAlbum)

    error| [E1101, Album.get_sales_total] Instance of 'Album' has no 'sale_set' member
    
    Run Code Online (Sandbox Code Playgroud)

即使出现这些"错误",此代码仍可完美运行,但如何使Syntastic正确运行?

nth*_*all 5

捎带@ supervacuo的回答:

有一种方法可以让这个工作用于合成,它是相当简单的,如果不容易弄清楚不熟悉的合成选项(比如说,我):

在.vimrc中,添加以下行:

let g:syntastic_python_pylint_args = "--load-plugins pylint_django"

当然,这需要pylint-django安装在您的环境中


sup*_*cuo 4

这两条消息都来自pylint\xe2\x80\x94 您可以使用pylint --help-msg=$ID, 或在http://pylint-messages.wikidot.com/上看到更完整的解释。

\n\n

您可以使用eg 禁用检查from django.core.urlresolvers import reverse\n # pylint: disable=F0401,但这很快就会变得令人厌烦。

\n\n

Django有一个pylint 插件pylint 插件,它肯定能修复你的 E1101(我希望 F0401 也能修复)。也许尝试安装插件并配置 Syntastic 来使用它?

\n