pylint-django
A Pylint plugin to help Pylint understand the Django web framework
Decision gist · record as of 2026-08-14
Yes, if you use Pylint on Django projects. It eliminates a major source of noise (Django's dynamic attributes) and is actively maintained with no known vulnerabilities. The copyleft license (GPLv2+) is the only consideration—confirm it aligns with your project's licensing policy before adding it to a proprietary codebase.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a Django settings module (via DJANGO_SETTINGS_MODULE env var or --django-settings-module flag) to access Django internals for accurate type inference; without it, linting is less accurate.
- Low friction install with only two runtime dependencies (pylint and pylint-plugin-utils).
- Actively maintained with a release 34 days ago and recent commits.
License · maintenance · safety
copyleft license (copyleft) — Licensed under GPLv2 or later (copyleft). Any code that imports and uses this plugin in a proprietary project must comply with copyleft obligations—consult your legal team if you have restrictions on GPL dependencies.
last release 2026-07-11 (34 days) · last repo commit 2026-08-11 · 622 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,296,181 downloads/mo, #3,158 on PyPI
Alternatives
Verify before relying
pip install pylint-django
DJANGO_SETTINGS_MODULE=your.app.settings pylint --load-plugins pylint_django <path_to_sources>
# Or with Django auto-installed:
pip install pylint-django[with-django]- Whether the plugin works with Django versions newer than 5.2 or Python 3.14+ in practice despite classifier support.
- Performance impact of running pylint with this plugin on large codebases compared to baseline pylint.
What it is and what it does
pylint-django is a Pylint plugin that teaches Pylint how to understand Django's dynamic code patterns. When you run Pylint on Django projects, it normally complains about attributes that don't exist in the static code—like Model.objects or View.request—because Django creates them at runtime. This plugin suppresses those false positives and improves type inference for Django ORM fields, forms, and migrations.
You install it alongside Pylint and activate it by passing --load-plugins pylint_django to your linting command. For best results, you point it to your Django settings module so it can use Django's own machinery to resolve model references and understand your project structure. It also includes an optional migrations checker that flags potentially problematic patterns like adding fields with defaults to large tables.
Use it for
- Linting a Django project without drowning in false positives about missing Model attributes and ORM field methods.
- Validating Django ModelForm and Model Meta classes without spurious warnings about informational-only attributes.
- Catching dangerous patterns in migrations, such as adding fields with defaults that could lock large tables during deployment.
- Integrating Django code quality checks into CI/CD pipelines via Prospector, which auto-detects and uses this plugin.
- Improving type inference for ForeignKey and other relational field attributes during static analysis.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you use Pylint on Django projects.
It eliminates a major source of noise (Django's dynamic attributes) and is actively maintained with no known vulnerabilities. The copyleft license (GPLv2+) is the only consideration—confirm it aligns with your project's licensing policy before adding it to a proprietary codebase.
Install
pylint-django on PyPI
Before you install
Low friction install with only two runtime dependencies (pylint and pylint-plugin-utils). Actively maintained with a release 34 days ago and recent commits. Django itself is not installed by default to avoid environment conflicts; install with [with-django] extra if needed.
Requires a Django settings module (via DJANGO_SETTINGS_MODULE env var or --django-settings-module flag) to access Django internals for accurate type inference; without it, linting is less accurate.
License in practice
Licensed under GPLv2 or later (copyleft). Any code that imports and uses this plugin in a proprietary project must comply with copyleft obligations—consult your legal team if you have restrictions on GPL dependencies.
Quickstart
pip install pylint-django
DJANGO_SETTINGS_MODULE=your.app.settings pylint --load-plugins pylint_django <path_to_sources>
# Or with Django auto-installed:
pip install pylint-django[with-django]
Verify before relying
- Whether the plugin works with Django versions newer than 5.2 or Python 3.14+ in practice despite classifier support.
- Performance impact of running pylint with this plugin on large codebases compared to baseline pylint.
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release <4.0,>=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagespylintpylint-plugin-utils |
| Maintenance | Actively maintained 34 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,296,181 / month, #3,158 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleFramework :: Django :: 2.2Framework :: Django :: 3Framework :: Django :: 3.0Framework :: Django :: 3.1Framework :: Django :: 3.2Framework :: Django :: 4Framework :: Django :: 4.0Framework :: Django :: 4.1Framework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Intended Audience :: DevelopersLicense :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)Operating System :: UnixProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Software Development :: Quality Assurance |
Evidence: pylint_django-2.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “pylint django plugin”
- pylint-djangoA Pylint plugin that improves static analysis of Django code by…
- pylint-plugin-utilsProvides utilities and helper functions for building Pylint plugins,…
- teamcity-messagesSends test results and build status from Python test frameworks…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also prospector · pylint · pylint-celery · pylint-flask · pylint-odoo · pylint-plugin-utils · pylint-pytest · pylint-pydantic · pylint-flask-sqlalchemy · pylint-protobuf