Python プロジェクトのビルド プロセスにpylintを統合したいのですが、1 つの show-stopper に遭遇E1101: *%s %r has no %r
member*
しました。 、 例えば:
E1101:125:get_user_tags: Class 'Tag' has no 'objects' member
これは、次のコードが原因です。
def get_user_tags(username):
"""
Gets all the tags that username has used.
Returns a query set.
"""
return Tag.objects.filter( ## This line triggers the error.
tagownership__users__username__exact=username).distinct()
# Here is the Tag class, models.Model is provided by Django:
class Tag(models.Model):
"""
Model for user-defined strings that help categorize Events on
on a per-user basis.
"""
name = models.CharField(max_length=500, null=False, unique=True)
def __unicode__(self):
return self.name
オブジェクトなどのフィールドを適切に考慮するように Pylint を調整するにはどうすればよいですか? (私はDjangoのソースも調べましたが、の実装を見つけることができなかったobjects
ので、それは「単なる」クラスフィールドではないと思われます。一方、私はpythonにかなり慣れていないので、私は何かを見落としているかもしれません。)
編集:これらの警告について警告しないように pylint に指示する唯一の方法は、(私の意見では) 非常に有用なエラーであるため、許容できる解決策ではないタイプ (E1101) のすべてのエラーをブロックすることです。別の方法がある場合は、pylint ソースを拡張せずに、詳細を教えてください:)
私が経験した問題の概要については、こちらを参照してください。一般的な使用には不安定であることが証明されています。(pychecker の場合、クラッシュは pychecker コードで発生しました。読み込み中または呼び出し中のソースではありません。)pychecker
pyflakes