6

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

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

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

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

4

1 回答 1

10

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

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

语言注入


或者,要仅在包含其中的字符串上禁用它,请将from{}的末尾更改为如下所示:Places Pattern.*[^{}]*

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

对此:

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

pyStringLiteralMatches

于 2015-07-02T16:19:28.770 回答