DjangoでPylintを使用する 質問する

DjangoでPylintを使用する 質問する

私は統合したいと思っていますパイリント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

詳細なブログ投稿ここ

おすすめ記事