Pythonプロジェクト内の未使用コードや到達不能コードを検出する静的解析ツール。
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
PyPIからプラグインをインストールします
pip install pylint-django - 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 の数値は毎日更新されます。
関連プロジェクト
プロジェクトごとに設定できる200以上のルールで、Swiftのスタイルや規約をチェックするリンターです。
バグや脆弱性、保守性の問題をスキャンし、CIパイプラインでQuality Gatesを適用するセルフホスト型のコード品質・セキュリティプラットフォーム。
PHP_CodeSniffer用のルールセット。別のPHPバージョンでは動作しない機能や関数を使っているコードを検出します。
PHPの静的解析、テスト、コード品質ツールを多数まとめたDockerイメージ。ローカルにPHPツールをインストールせずに実行できます。
Jupyter Notebook上でruff、isort、black、mypy、flake8などのPythonリンターやフォーマッターを直接実行できるCLIツール。