私は統合したいと思っていますパイリントPython プロジェクトのビルド プロセスに組み込んだのですが、1 つの致命的な問題に遭遇しました。非常に役立つエラー タイプの 1 つに、次E1101: *%s %r has no %r member*
のような一般的な Django フィールドを使用するときに常にエラーが報告されるというものがあります。
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
およびで発生した問題の要約についてはpyflakes
、一般的な使用には非常に不安定であることが判明しています。(pychecker の場合、クラッシュの原因は pychecker コードにあり、読み込み/呼び出し元のソースコードではありません。)
ベストアンサー1
ignores
またはを追加してPylintの機能を無効にしたり弱めたりしないでくださいgenerated-members
。
積極的に開発されているPylintプラグインを使用してください。理解するジャンゴ。
Django用のPylintプラグイン非常にうまく動作します:
pip install pylint-django
pylint を実行するときに、コマンドに次のフラグを追加します。
--load-plugins pylint_django
詳細なブログ投稿ここ。