Repolode
pylint-dev

pylint-dev/pylint-django

Djangoのモデル、フォーム、ビュー、マイグレーションをPylintに認識させ、誤検知を減らすプラグインです。

スター
623
フォーク
124
未解決の Issue
76
最終コミット
4 日前

これは何?

pylint-djangoは、Pythonの静的解析ツールPylint用のプラグインです。標準状態のPylintはDjangoの実行時の動的な仕組みを理解できないため、Model.objectsやViews.requestなどの属性や、解決できないForeignKeyフィールドについて警告を出します。このプラグインはDjangoに対応した推論機能を追加し、こうした誤検知をなくすとともに、モデルやフォームのフィールド属性の型を認識できるようにします。

このプラグインは、Pylintの--load-pluginsオプションで読み込んで使用します。正確な解析にはDjangoのsettingsモジュールが必要です。DJANGO_SETTINGS_MODULE環境変数、または--django-settings-moduleフラグで指定すると、インストール済みアプリや文字列で参照されたモデルを解決できます。settingsがない場合はデフォルト設定にフォールバックするため、推論の精度は下がります。また、Prospector linterにも同梱されており、Djangoが検出されると自動的に有効になります。

オプションのマイグレーションチェッカーは、大きなテーブルで処理が遅くなる可能性のある、デフォルト値付きの新規フィールドと、逆方向の処理が指定されていないRunPython操作を警告します。この機能はデフォルトでは無効で、明示的に有効化する必要があります。

主な機能

  • 01Model.objectsやViews.requestなど、Djangoが生成する属性に対する誤警告を抑制します。
  • 02ForeignKey属性を解決し、「has no member」エラーが出ないようにします。
  • 03ModelとFormのフィールド属性の型を推論します。
  • 04Model.__unicode__メソッドを検証し、危険なModelFormのexcludeの使い方を警告します。
  • 05オプションで、リスクのあるフィールドのデフォルト値や、取り消し不能なRunPython操作をマイグレーションから検出します。

ユースケース

  • DjangoプロジェクトのCIでPylintやProspectorを実行し、誤検知に埋もれずに解析する。
  • 大規模なコードベースで、Djangoのモデルやフォームに対する静的解析の精度を高める。
  • デプロイ前にマイグレーションファイルを確認し、パフォーマンスや可逆性の問題を見つける。

クイックスタート

  1. 1

    PyPIからプラグインをインストールします

    pip install pylint-django
  2. 2

    プラグインとDjangoの設定モジュールを読み込んでpylintを実行します

    pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources>

使う前に知っておきたいこと

  • GPL-2.0のコピーレフトライセンスで提供されており、商用利用が制限される場合があります。
  • Djangoはデフォルトではインストールされないため、別途セットアップするか、with-django extraを使ってインストールする必要があります。
  • Djangoの設定モジュールを構成して使うと最も効果的です。設定モジュールがない場合、解析の精度が低下します。

トピック

よくある質問

pylint-django とは?
Djangoのモデル、フォーム、ビュー、マイグレーションをPylintに認識させ、誤検知を減らすプラグインです。 pylint-djangoは、Pythonの静的解析ツールPylint用のプラグインです。標準状態のPylintはDjangoの実行時の動的な仕組みを理解できないため、Model.objectsやViews.requestなどの属性や、解決できないForeignKeyフィールドについて警告を出します。このプラグインはDjangoに対応した推論機能を追加し、こうした誤検知をなくすとともに、モデルやフォームのフィールド属性の型を認識できるようにします。
pylint-django は無料で使えますか?ライセンスは?
pylint-django は GPL-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pylint-django は今もメンテナンスされていますか?
活発にメンテナンス中。pylint-django の最終コミットは 2026年11月3日 です。
pylint-django は何に使えますか?
DjangoプロジェクトのCIでPylintやProspectorを実行し、誤検知に埋もれずに解析する。 大規模なコードベースで、Djangoのモデルやフォームに対する静的解析の精度を高める。 デプロイ前にマイグレーションファイルを確認し、パフォーマンスや可逆性の問題を見つける。
pylint-django のインストール方法は?
PyPIからプラグインをインストールします: pip install pylint-django プラグインとDjangoの設定モジュールを読み込んでpylintを実行します: pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources>
pylint-django はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pylint-dev/pylint-django

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト