如何抑制PyCharm中的语法检查?

Mac*_*iek 6 code-inspection pycharm

我正在使用PyCharm 3.4.1,我在我的函数中有这段代码:

cursor.execute('SELECT distinct "name_{0}", code, sort_order FROM {1}'.format(get_language(), ProgrammeLevel._meta.db_table))
Run Code Online (Sandbox Code Playgroud)

PyCharm正确地识别出该字符串包含SQL代码,但是代码语法检查告诉我我有语法错误,因为FROM {1}它说:<comma join expression> expected, got '{'这是一个有效点,但我知道我在做什么.

对于大多数(如果不是全部)PyCharm检查,我可以# noinspection在正确的位置写评论并关闭一些代码.我这样做了,关闭PyProtectedMember我刚刚给出的代码片段的检查.如何关闭此行代码的语法检查?给noinspection评论的检查名称是什么?

cho*_*own 9

这是通过语言注入而不是检查来控制的.

要取消错误:
Settings- > Editor- > Language Injections并取消选中以下框:
python:"SQL select/delete/insert/update/create"

语言注射


或者,要仅{}在其中的字符串上禁用它,请将Places Patternfrom的结尾更改.*[^{}]*like,以便:

+ pyStringLiteralMatches("[ \\t\\r\\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX))).*")
Run Code Online (Sandbox Code Playgroud)

对此:

+ pyStringLiteralMatches("[ \\t\\r\\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX)))[^{}]*")
Run Code Online (Sandbox Code Playgroud)

pyStringLiteralMatches