一款静态分析工具,用于查找 Python 项目中未被使用的函数、类、变量、导入和不可达代码。
pylint-dev/pylint-django
Pylint 插件,让静态检查理解 Django 的模型、表单、视图和迁移,减少 Django 代码中的误报。
- Star
- 623
- Fork
- 124
- 未关闭 Issue
- 76
- 最近提交
- 4天前
这是什么?
pylint-django 是 Python 静态分析工具 Pylint 的一个插件。Pylint 本身不理解 Django 的运行时机制,会对 Model.objects、Views.request 这类属性误报警告,也无法解析部分 ForeignKey 字段。该插件加入了 Django 相关的推断,消除这些误报,并让模型和表单字段的属性类型可被正确识别。
使用时通过 Pylint 的 --load-plugins 参数加载插件。为获得准确结果,需要提供 Django 配置模块,可以通过环境变量 DJANGO_SETTINGS_MODULE 或命令行参数 --django-settings-module 指定,以便解析已安装应用和字符串形式引用的模型。未配置时会使用默认设置,推断精度会下降。插件也随 Prospector 一起安装,检测到 Django 时自动启用。
插件还提供一个可选的迁移检查器,用于标记新增且带默认值的字段(在大表上可能影响性能),以及没有反向回调的 RunPython 操作。该检查器默认关闭,需要显式启用。
核心功能
- 01抑制 Model.objects、Views.request 等 Django 动态生成属性的误报。
- 02正确解析 ForeignKey 属性,避免“has no member”类错误。
- 03推断 Model 和 Form 字段属性的类型。
- 04校验 Model.__unicode__ 方法,并标记 ModelForm 中危险的 exclude 用法。
- 05可选地检查迁移文件中有风险的字段默认值和不可逆的 RunPython 操作。
适用场景
- 在 CI 中对 Django 项目运行 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 许可证,这是一种 copyleft 许可证,可能限制部分商业用途。
- 默认不会安装 Django,需要自行配置环境,或使用 with-django 额外依赖安装。
- 最好配置 Django 设置模块;未配置时分析结果准确度会降低。
标签
常见问题
- pylint-django 是什么?
- Pylint 插件,让静态检查理解 Django 的模型、表单、视图和迁移,减少 Django 代码中的误报。 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 适合用来做什么?
- 在 CI 中对 Django 项目运行 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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用于检查 Swift 代码风格与编码规范的 linter,内置 200 多条规则,可按项目配置。
自托管的代码质量与安全平台,扫描项目中的缺陷、漏洞和可维护性问题,并可在 CI 流程中设置质量门禁。
基于 PHP_CodeSniffer 的规则集,用于检测代码在不同 PHP 版本间的兼容性问题。
一个 Docker 镜像,打包了多款 PHP 静态分析、测试与代码质量工具,无需在本地安装即可运行。
一款命令行工具,可直接对 Jupyter Notebook 运行 ruff、isort、black、mypy、flake8 等 Python 代码检查与格式化工具。