Skip to main content

Static analysis tool for Django projects.

Project description

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.

Source Distribution

django-lint-2.tar.gz (7.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page