Herramienta de análisis estático que detecta funciones, clases, variables e imports sin usar, así como código inalcanzable en proyectos Python.
pylint-dev/pylint-django
Un plugin de Pylint que le permite entender modelos, formularios, vistas y migraciones de Django para reducir los falsos positivos en el código Django.
- Estrellas
- 623
- Forks
- 124
- Issues abiertos
- 76
- Último commit
- hace 4 días
¿Qué es?
pylint-django es un plugin para Pylint, el analizador estático de Python. De forma predeterminada, Pylint no entiende la magia de Django en tiempo de ejecución, así que genera advertencias sobre atributos como Model.objects o Views.request, y no puede resolver los campos ForeignKey. Este plugin añade inferencia adaptada a Django para eliminar esos falsos positivos y reconocer los tipos de los atributos de los campos de modelos y formularios.
El plugin se carga con la opción --load-plugins de Pylint. Para obtener resultados precisos, necesita el módulo de configuración de Django, que se indica mediante la variable de entorno DJANGO_SETTINGS_MODULE o la opción --django-settings-module, para resolver las aplicaciones instaladas y los modelos referenciados como cadenas. Si no se proporciona la configuración, recurre a los valores predeterminados y la inferencia es menos precisa. También está incluido en el linter Prospector y se activa automáticamente cuando detecta Django.
Un verificador opcional de migraciones señala los campos nuevos con valores predeterminados, que pueden ralentizar las operaciones en tablas grandes, y las operaciones RunPython que no tienen una función inversa. Está desactivado de forma predeterminada y hay que habilitarlo explícitamente.
Funciones clave
- 01Suprime las advertencias falsas sobre atributos generados por Django, como Model.objects y Views.request.
- 02Resuelve los atributos ForeignKey para que no generen errores «has no member».
- 03Infiere los tipos de los atributos de campos de Model y Form.
- 04Valida los métodos Model.__unicode__ y señala el uso peligroso de exclude en ModelForm.
- 05Comprueba de forma opcional las migraciones para detectar valores predeterminados de campos que puedan ser problemáticos y operaciones RunPython no reversibles.
Casos de uso
- Ejecutar Pylint o Prospector en la integración continua de un proyecto Django sin verse inundado de falsos positivos.
- Mejorar la precisión del análisis estático de modelos y formularios de Django en bases de código grandes.
- Revisar los archivos de migración antes del despliegue para detectar problemas de rendimiento o reversibilidad.
Inicio rápido
- 1
Instala el plugin desde PyPI
pip install pylint-django - 2
Ejecuta pylint con el plugin cargado y el módulo de configuración de Django
pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources>
Antes de usarlo
- Está bajo la licencia GPL-2.0, una licencia copyleft que puede restringir algunos usos comerciales.
- Django no se instala de forma predeterminada; debes configurarlo por separado o instalarlo mediante el extra with-django.
- Funciona mejor con un módulo de configuración de Django configurado. Sin él, el análisis es menos preciso.
Temas
Preguntas frecuentes
- ¿Qué es pylint-django?
- Un plugin de Pylint que le permite entender modelos, formularios, vistas y migraciones de Django para reducir los falsos positivos en el código Django. pylint-django es un plugin para Pylint, el analizador estático de Python. De forma predeterminada, Pylint no entiende la magia de Django en tiempo de ejecución, así que genera advertencias sobre atributos como Model.objects o Views.request, y no puede resolver los campos ForeignKey. Este plugin añade inferencia adaptada a Django para eliminar esos falsos positivos y reconocer los tipos de los atributos de los campos de modelos y formularios.
- ¿pylint-django es gratuito? ¿Qué licencia tiene?
- pylint-django es open source bajo la licencia GPL-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pylint-django sigue mantenido?
- Mantenimiento activo. El último commit de pylint-django fue el 3 nov 2026.
- ¿Para qué puedo usar pylint-django?
- Ejecutar Pylint o Prospector en la integración continua de un proyecto Django sin verse inundado de falsos positivos. Mejorar la precisión del análisis estático de modelos y formularios de Django en bases de código grandes. Revisar los archivos de migración antes del despliegue para detectar problemas de rendimiento o reversibilidad.
- ¿Cómo se instala pylint-django?
- Instala el plugin desde PyPI: pip install pylint-django Ejecuta pylint con el plugin cargado y el módulo de configuración de Django: pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources>
- ¿Dónde consigo pylint-django?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pylint-dev/pylint-django
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Linter que aplica reglas de estilo y convenciones de Swift, con más de 200 reglas configurables por proyecto.
Plataforma autogestionada de calidad y seguridad del código que analiza proyectos en busca de errores, vulnerabilidades y problemas de mantenibilidad, con Quality Gates para pipelines de CI.
Conjunto de reglas para PHP_CodeSniffer que detecta código que usa funciones o características de PHP incompatibles con otras versiones.
Imagen Docker que agrupa herramientas de análisis estático, testing y calidad de código para PHP, para ejecutarlas sin instalar herramientas de PHP localmente.
Una herramienta CLI para ejecutar linters y formateadores de Python, como ruff, isort, black, mypy y flake8, directamente en Jupyter Notebooks.