Find and fix Django mishaps.
Project description
django-doctor
Django code quality assistant. Offline version of https://django.doctor
Find and fix around 40 breaches of Django best practice - helping you build world-class websites, release faster, and reduce dev costs.
Installation
$ pip install django-doctor
Fix
Run the fix suggestion wizard like so:
$ django_doctor fix
This runs a simple server on http://localhost:9000 and opens the wizard in your browser:
You then accept or reject the suggestions
And ultimately the selected changes are saved to your file system
You can change the address:
$ django_doctor fix --address=0.0.0.0 --port=9001
Your virtual environment directory is automatically skipped. To exclude other directories use the --ignore
flag:
$ django_doctor fix --ignore=foo # single directory
$ django_doctor fix --ignore=foo bar # multiple directories
You can also specify a subdirectory to check instead of running on the current working directory:
$ django_doctor fix --directory=foo
Check
You can see suggested changes in your shell without opening a browser too:
$ django_doctor check
Consider running this as a pre-commit hook, or on your CI to prevent new Django anti-patterns from being merged.
You can also use --ignore
and --directory
the same as with the fix
command.
Configuration
You can turn off checks. See here for more details.
Support
Chat with us on https://django.doctor if you have any problems or have a feature request
GitHub integration
Django Doctor has GitHub integration. Learn more at https://django.doctor/github
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
Built Distributions
Hashes for django_doctor-2.1.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd2d59e2685f94259d881f838900d2826df8102758c23d5dadf4e03fe16e3af9 |
|
MD5 | 3cc28d178a302c9251dd3c66ef25972a |
|
BLAKE2b-256 | fe01e7b031d88b910902add5d8bd085eb6606490025e500646edd6266dc08bf9 |
Hashes for django_doctor-2.1.5-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80ef7b586a034f22adb5f359ac2f1b9ee178e2b786f53665d464db71fb9ab44d |
|
MD5 | 0e47b932a3aadb3630fed4d8c34c9b3c |
|
BLAKE2b-256 | 98e7701e3ff774b829e88f95ee40a2defefbabc34d80cd85e4bdccc84479f356 |
Hashes for django_doctor-2.1.5-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a4ca383b10f3b348c7e7fbb597f1c61c174a66e3e0e975f7aacb1344161bb82 |
|
MD5 | 7db49c722cca2ef44c68961189fe5feb |
|
BLAKE2b-256 | d41b342f6d9a14ebd0c1b3957ea1d5d1d4761a6043811d0e160fc9dcd5b004fc |
Hashes for django_doctor-2.1.5-cp39-cp39-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90aa810c11af667d13cf9e350c48c46859ba1b652f1604a9c5f2bd2938fcfa74 |
|
MD5 | 1e2b589040edaf6968f21d0b6f4e3c09 |
|
BLAKE2b-256 | 273ebf7ab13c0e296dd28e7aba0d23cca457b02f4f939d6aa068cffc7b96b9a7 |
Hashes for django_doctor-2.1.5-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9b9b99f997d880edc88db8b78ac35269c58c218a2b601e527b5b1048a9e3312 |
|
MD5 | 5bcfded546c8d7897b3cc88e972dd536 |
|
BLAKE2b-256 | f33725f6a46eb56297518dedae9f07fe93f2edb4e512dbe74ce81d1a5c35289a |
Hashes for django_doctor-2.1.5-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c67dee2591f28b972ab738fd31629e706ca72c9597fc26ce0e86a0e03fa9262e |
|
MD5 | 1a1f777b9991deea0d0e33ae643608a6 |
|
BLAKE2b-256 | 87699936c6b045d51cbf7cdfb74989a84e01a7961a45e9cdc449ca9e8fd70b1a |
Hashes for django_doctor-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a8fbcb89926f61b670837d46ed0a302176249d01d2159b325fa86d7d3f0f2a0 |
|
MD5 | 63243aaf73d8359c73ae1c5525aed83f |
|
BLAKE2b-256 | 163dc1defa94f3a7793a3c40aef551b82fcc3c3bf1a84ab0b9eebdda56cc75ae |
Hashes for django_doctor-2.1.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 629d4b80d188dc1cfce9522fd43f0dd16d4cab49dfc9591719e3105567e8cacc |
|
MD5 | 26b8bd5db96f1845085b68182e870116 |
|
BLAKE2b-256 | 5d7547b3c2839d3230db1d4d1fff2760a4e64d1f4672a8f5182a42f985227398 |
Hashes for django_doctor-2.1.5-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9cee614ed19ffbb725a436dce39d60d0d0479fa962771e573aef15655408b66 |
|
MD5 | cece2f072f4c50bc84b414a5737305e8 |
|
BLAKE2b-256 | d77025edca4211ae5429a42ea0dcd2f207d6a19b12d0513438185c027b47228a |
Hashes for django_doctor-2.1.5-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9aee376c63f3619572e0ecf92f43733ac221082fd019ae1f2a05c093334ad322 |
|
MD5 | 90e3b1bc005da2b0b48856c8754fad79 |
|
BLAKE2b-256 | 92466208a9e4d87d92a387b7df75305c7e8b7b1be51a7b2352fd02708d2b32c6 |
Hashes for django_doctor-2.1.5-cp38-cp38-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 598d5f1fd8db46f37cf4901d0c4738306697f1968c8a4e65e7cda3b59dee220b |
|
MD5 | d1288de9c8ad746416c49308bffa33cb |
|
BLAKE2b-256 | f30a25fb276a4144eb536c37659b2943cb4f8022f80ec88561376ef5bcc32c23 |
Hashes for django_doctor-2.1.5-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f28dfb6621e5fac1b505379b2f4f507184c9a47af013fb706d0b6c280670873a |
|
MD5 | f63f33fc82b6f7fff78c52e4d7cdc9b9 |
|
BLAKE2b-256 | 6d86e665341f3c5858ba86eb6bcedcfb7d5b1cb97fb1b3118c24753b7774235d |
Hashes for django_doctor-2.1.5-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8bde698f80150e8e674d5447690c459db9a57665b9ef5af2a2be989fde92976 |
|
MD5 | 16b0b3119b110b36433408fbecbd0141 |
|
BLAKE2b-256 | 4b41ae9e653acc7508766cb0f04e8ae11b77bfa89fdb405f77f4983c7a355c04 |
Hashes for django_doctor-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7732b71a2b7d767071cf723a28f9c05da689e657fcc1a00124d874cc8d72c68 |
|
MD5 | 2a67ca0c10e27cfb98f95fe559f5443b |
|
BLAKE2b-256 | f93ddbe1805d2606784a28ec973692122cd03dac4e84df6eafcad1fdf1db5ef9 |
Hashes for django_doctor-2.1.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 004189e8b4ee81349d8ad8567ca55591adfee25cfc0a67d2ab8cdf1a4027adab |
|
MD5 | 81465ab0f95bb905f09b966efba3b37f |
|
BLAKE2b-256 | c57c519e32ebc9919ead9c492a3b4bc05f2954c11428fece5ee33ff085c727e1 |
Hashes for django_doctor-2.1.5-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e889b8b2fb0314e6b3dd5ff7df4bc9e9edcaf7beeb624b6b734833a10563ab90 |
|
MD5 | a5c4404d4cad41c031a4c5bfbf2f893b |
|
BLAKE2b-256 | 9e71162545ad60c790effe7aa530cee03dd27c323a3fd6e3f6c0b4aa37b539b9 |
Hashes for django_doctor-2.1.5-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aaaef602c910c3dc9335da08c28d6a616f0cc8b67bd8eceb35d034871087e9b2 |
|
MD5 | 1802ef9dbe8779899c7d6f839a9fb645 |
|
BLAKE2b-256 | d50b6f0851dbd6c31f54c396dcdbbbc6bf578cda9872ee4f6ebfa2091f2c607d |
Hashes for django_doctor-2.1.5-cp37-cp37m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d60163cb9ff2cfaeb49be3e38ca5372237196b8724ff1fe246ca1aab49000ba0 |
|
MD5 | de35048453851710ef6a4b8d683e4af7 |
|
BLAKE2b-256 | 759c5f81ee44dff61386cde5c2f17880927b47e068a99937ecd6e50f43c79863 |
Hashes for django_doctor-2.1.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36721cbd963f620ac14ab2fb6da5a248e9d8a2127c8daf29c572ed0c28c55db2 |
|
MD5 | fbf8cc874635e4f6035176ead9a276a5 |
|
BLAKE2b-256 | aa96350e68e3ea6cb041de91b9e3301b221ffefdda7f45a0c5e1b14fefd391c0 |
Hashes for django_doctor-2.1.5-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 439257f581c281b4cf1ebb256ebedd31164a3a2feb5bcc9aab777b85a33a011d |
|
MD5 | a7d6f15da5a47a38b58f7ef216d6ddd0 |
|
BLAKE2b-256 | c03a6954a632c36077dc70547bf8209384a32741c02c934a094b2567f0e0c915 |
Hashes for django_doctor-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd6bf97eace82d658870dc625f5bb1846ee3eef8e072b4fbc3eb2d5a1aa717c5 |
|
MD5 | 26ab130ea7d36c002ff1af64af12b4e9 |
|
BLAKE2b-256 | c42effe2a7f494b2614370c14617bcb4db8287c0a092e6e0761fb3378b32bafa |
Hashes for django_doctor-2.1.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef3d2e29273e8ebac67af69a6fa6d3eeae87918e95f0423c470382b43ba051ba |
|
MD5 | 0ad305215b56a64e9fa3a0a5662d0862 |
|
BLAKE2b-256 | 8d36971746b59233aebe58aa5fc2e0ce783487e39b70f0c56d5da142130a6d81 |
Hashes for django_doctor-2.1.5-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 732795bc2558af8c03f55034e1f0dcaf33f3a36983ab0daa095ae78ad13c81ab |
|
MD5 | 9dccfa6d161cbcc2274d26516a28597a |
|
BLAKE2b-256 | dbecfef87331604c2021478e807e7181fde3af35520a3d07e44f179454d24130 |
Hashes for django_doctor-2.1.5-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d4fe2577c792c4e299046519f773694e0fa18433a60b18f5d4174fd7832fc82 |
|
MD5 | 36a12b08e28049728d66d0198503371d |
|
BLAKE2b-256 | 06e2f52745b6dd8a5d9e1aee4b528358f18d62f364028a1143866ebcfe4e48f9 |
Hashes for django_doctor-2.1.5-cp36-cp36m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afec48197f3f83193ac3199bc56e50c3bd42e8ca7cb261f7cf57fb9f2f716a2d |
|
MD5 | e928e2d6e4918c3fd71ecc53fb62048d |
|
BLAKE2b-256 | 0d8fe5d75eafa68cb030d7fbffc7eb9865e4abd45a454222c9215d64294f3a70 |
Hashes for django_doctor-2.1.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc3159fec0be9e1d7e7cdb416db36f8e0aa521b73f382c7bf257224f3c6b07de |
|
MD5 | e71775b01cc27398307568a6af980c8e |
|
BLAKE2b-256 | 45b929b87ef492088f095f7e340254a45d822b0c78ba2e2dff79403bd9e9bd38 |
Hashes for django_doctor-2.1.5-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13cfd043ca4d83f13fb530c04b8f100be7ad2d9d7011b20212d45a265c05151a |
|
MD5 | 1bc94d88f3d855c8ad66ff806ccc89c2 |
|
BLAKE2b-256 | 7c5fcbc47111dcfb38e8bbf9308cf96ea06e8e864780fb6159dda07f0453fd9e |
Hashes for django_doctor-2.1.5-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c104b591be7352a966e2f3c6fc68d0027528c580df752b8a05c89ca814c79f3 |
|
MD5 | 3aa542a53d0ed140bdf6a17ca0a9b4a4 |
|
BLAKE2b-256 | 7a93744deda0afbb566b08f6a8b0e18c5a46f795dfc5cca8fbb3e845abe1357e |