我已将ugettext_lazy导入为_但是pylint抱怨_不可调用。有没有办法忽略这个错误信息?
from django.utils.translation import ugettext_lazy as _
...
class A(models.Model):
name = models.CharField(max_length=255, verbose_name=_("Name"))
似乎我找到了一半答案。有一种方法可以忽略某些消息。
[MESSAGES CONTROL]
disable=E1102[,<msg id>]+
获取消息和ID列表:
shell> pylint --list-msgs
为什么只有一半的解决方案?好吧不,它没有报告这样的情况:
asdf = 5
asdf()
也许有办法指定错误原因,但那是另一天:|。
谢谢大家。
答案 0 :(得分:4)
禁用pylintrc文件中的消息以避免误报肯定不是解决方案,因为它会完全停用此检查。
看一下django的源代码,似乎pylint不喜欢lazy()
的东西。
Django人应该阅读http://www.logilab.org/blogentry/78354并启动一个特定于django的插件,这可以很容易地解决这些问题。
答案 1 :(得分:3)
在pylintrc文件中添加以下内容
[VARIABLES]
additional-builtins=_
这会将下划线符号添加到应该在builtins中定义的其他名称列表中,并且pylint不会抱怨它。
答案 2 :(得分:1)
pylint --additional-builtins=_ ...
将在大多数情况下完成工作。
答案 3 :(得分:0)
_指的是最后输出的值
所以,这可能是错误原因
>>> 1 + 1
2
>>> print _
2
>>> _("foo")
TypeError: 'int' object is not callable