Skip to main content

Static analysis tool for Django projects.

Project description

Consulting services: if your organisation needs a reputable software developer with a track record of producing high-quality and maintainable Python/Django code, please get in touch to discuss your needs. More info


Ideas

  • Default manager with restrictive get_query_set()
  • Oldforms (?)
  • Overring definition of model. Eg:
    class MyModel(models.Model):
    foo = [..] foo = [..]
  • Not importing settings via “django.conf import settings”
  • Not using reverse (or @permalink) in get_absolute_url (?)
  • Form definitions in models.py
  • Ignore tests

Models

  • Don’t count ManyToMany fields on a model as a field
  • Remove common prefix checking.
  • models.. specifying “objects = ” should be last

Views

  • Calling request.is_authenticated without actually calling function
  • order_by(‘?’)
  • request.method.upper is a no-op (etc.)
  • cache.set without a timeout

URLS

  • Unreversible urlpatterns

Layout

  • Form class not in forms.py
  • Admin class not in admin.py

Templates

  • {% if foo %}{{ foo }}{% else %}bar{% endif %} => {{ foo|default:”bar” }}
  • {% with foo as bar %} … [ not using {{ bar }} ] … {% endwith %}
  • {% endblock %} vs. {% endblock blockname %}

Settings

  • Ordering of MIDDLEWARE_CLASSES
  • TEMPLATE_DIRS not absolute

Layout

forms not in forms.py managers not in managers.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-lint-2.0.4.tar.gz (8.1 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page