This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Miscellaneous tools for django.

travis-ci.org/jedie/django-tools
coveralls.io/r/jedie/django-tools
landscape.io/github/jedie/django-tools/master

existing stuff

Filemanager library

Library for building django application like filemanager, gallery etc.

more info, read ./filemanager/README.creole

per-site cache middleware

Similar to django UpdateCacheMiddleware and FetchFromCacheMiddleware, but has some enhancements: ‘per site cache’ in ./cache/README.creole

smooth cache backends

Same as django cache backends, but adds cache.smooth_update() to clears the cache smoothly depend on the current system load. more info in: ‘smooth cache backends’ in ./cache/README.creole

local sync cache

Keep a local dict in a multi-threaded environment up-to-date. Usefull for cache dicts. More info, read DocString in ./local_sync_cache/local_sync_cache.py.

threadlocals middleware

For getting request object anywhere, use ./middlewares/ThreadLocal.py

Dynamic SITE_ID middleware

Set settings.SITE_ID dynamically with a middleware base on the current request domain name. Domain name alias can be specify as a simple string or as a regular expression.

more info, read ./dynamic_site/README.creole.

StackInfoStorage

Message storage like LegacyFallbackStorage, except, every message would have a stack info, witch is helpful, for debugging. Stack info would only be added, if settings DEBUG or MESSAGE_DEBUG is on. To use it, put this into your settings:

MESSAGE_STORAGE = "django_tools.utils.messages.StackInfoStorage"

More info, read DocString in ./utils/messages.py.

limit to usergroups

Limit something with only one field, by selecting:

  • anonymous users
  • staff users
  • superusers
  • ..all existing user groups..

More info, read DocString in ./limit_to_usergroups.py

form/model fields

unittests helpers

Mockup utils

Create dummy PIL/django-filer images with Text, see:

usage/tests:

BaseUnittestCase

django_tools.unittest_utils.unittest_base.BaseUnittestCase contains some low-level assert methods:

  • assertEqual_dedent()
  • assert_is_dir(), assert_not_is_dir()
  • assert_is_file(), assert_not_is_File()

django_tools.unittest_utils.tempdir contains TempDir, a Context Manager Class:

with TempDir(prefix="foo_") as tempfolder:
    # create a file:
    open(os.path.join(tempfolder, "bar"), "w").close()

# the created temp folder was deleted with shutil.rmtree()

usage/tests:

DjangoCommandMixin

Helper to run shell commands. e.g.: “./manage.py cms check”

usage/tests:

DOM compare in unittests

The Problem: You can’t easy check if e.g. some form input fields are in the response, because the form rendering use a dict for storing all html attributes. So, the ordering of form field attributes are not sorted and varied.

The Solution: You need to parse the response content into a DOM tree and compare nodes.

We add the great work of Gregor Müllegger at his GSoC 2011 form-rendering branch. You will have the following assert methods inherit from: django_tools.unittest_utils.unittest_base.BaseTestCase

  • self.assertHTMLEqual() – for compare two HTML DOM trees
  • self.assertDOM() – for check if nodes in response or not.
  • self.assertContains() – Check if ond node occurs ‘count’ times in response

More info and examples in ./django_tools_tests/test_dom_asserts.py

Speedup tests

Speedup test run start by disable migrations, e.g.:

from django_tools.unittest_utils.disable_migrations import DisableMigrations
MIGRATION_MODULES = DisableMigrations()

small tools

debug_csrf_failure()

Display the normal debug page and not the minimal csrf debug page. More info in DocString here: django_tools/views/csrf.py

import lib helper

additional helper to the existing importlib more info in the sourcecode: ./utils/importlib.py

http utils

Pimped HttpRequest to get some more information about a request. More info in DocString here: django_tools/utils/http.py

upgrade virtualenv

A simple commandline script that calls pip install —-upgrade XY for every package thats installed in a virtualenv. Simply copy/symlink it into the root directory of your virtualenv and start it.

Note: Seems that this solution can’t observe editables right.

To use it, without installing django-tools:

~/$ cd goto/your_env
.../your_env/$ wget https://github.com/jedie/django-tools/raw/master/django_tools/upgrade_virtualenv.py
.../your_env/$ chmod +x upgrade_virtualenv.py
.../your_env/$ ./upgrade_virtualenv.py

This script will be obsolete, if pip has a own upgrade command.

SignedCookieStorage

Store information in signed Cookies, use django.core.signing. So the cookie data can’t be manipulated from the client. Sources/examples:

SetRequestDebugMiddleware

middleware to add debug bool attribute to request object. More info: ./debug/README.creole

InternalIps() - Unix shell-style wildcards in INTERNAL_IPS

settings.py e.g.:

from django_tools.settings_utils import InternalIps

INTERNAL_IPS = InternalIps(["127.0.0.1", "::1", "192.168.*.*", "10.0.*.*"])

StdoutStderrBuffer()

redirect stdout + stderr to a string buffer. e.g.:

from django_tools.unittest_utils.stdout_redirect import StdoutStderrBuffer

with StdoutStderrBuffer() as buffer:
    print("foo")
output = buffer.get_output() # contains "foo\n"

..all others…

There exist many miscellaneous stuff. Look in the source, luke!

running django-tools unittests

There exist different ways to run unittests, e.g.:

.../django-tools $ tox
.../django-tools $ ./setup.py test
.../django-tools $ ./manage.py test
.../django-tools $ ./runtests.sh

Run specific tests, e.g.:

.../django-tools $ ./setup.py test tests.test_local_sync_cache
.../django-tools $ ./manage.py test tests.test_local_sync_cache
.../django-tools $ ./runtests.sh tests.test_local_sync_cache

Backwards-incompatible changes

v0.29

ClientCookieStorage was renamed to SignedCookieStorage import e.g.:

from django_tools.utils.client_storage import SignedCookieStorage

v0.25.0

SmoothCacheBackends API changed: The cache.clear() method will really clear the cache, as the origin backend API. You must call cache.smooth_update() to set the “last change” timestamp.

v0.24.10

AutoUpdateFileBasedCache is deprecated, use new SmoothCacheBackends.

v0.9

Language code field and SelectMediaPath are renamed.

change: from django_tools.fields import LanguageCodeFormField to: from django_tools.fields.language_code import LanguageCodeFormField

change and rename: from django_tools.fields import LanguageCodeField to: from django_tools.fields.language_code import LanguageCodeModelField

change and rename: from django_tools.widgets import SelectMediaPath to: from django_tools.fields.media_path import MediaPathWidget

Django compatibility

django-tools django version python
>= v0.30.1 1.8, 1.9, 1.10 2.7, 3.4, 3.5
v0.30 1.8, 1.9 2.7, 3.4
v0.29 1.6 - 1.8 2.7, 3.4
v0.26 <=1.6  
v0.25 <=1.4  

(since v0.29 the given version combination will be tested via travis-ci)

history

  • v0.31.0 - 03.11.2016 - compare v0.30.4…v0.31.0

    • add Mockup utils to create dummy PIL/django-filer images with Text (see above)
    • move tests into /django_tools_tests/
  • v0.30.4 - 27.10.2016 - compare v0.30.2…v0.30.4

    • add DjangoCommandMixin
  • v0.30.2 - 05.10.2016 - compare v0.30.1…v0.30.2

    • Bugfix Python 2 compatibility
  • v0.30.1 - 26.08.2016 - compare v0.30.0…v0.30.1

    • add: django_tools.unittest_utils.disable_migrations.DisableMigrations (see above)
    • run tests also with django v1.10 and Python 3.5
    • use tox
  • v0.30.0 - 27.04.2016 - compare v0.29.5…v0.30.0

    • Django 1.9 and Python 3 support contributed by naegelyd
  • v0.29.4 and v0.29.5 - 10.08.2015 - compare v0.29.3…v0.29.5

    • Some bugfixes for django 1.6 support
  • v0.29.3 - 10.08.2015 - compare v0.29.2…v0.29.3

    • Clear ThreadLocal request atttribute after response is processed (contributed by Lucas Wiman)
  • v0.29.2 - 19.06.2015 - compare v0.29.1…v0.29.2

    • Bugfix in unittest_utils.selenium_utils.selenium2fakes_response
    • assertResponse used assertContains from django
    • Add QueryLogMiddleware (TODO: add tests)
  • v0.29.1 - 17.06.2015 - compare v0.29.0…v0.29.1

    • Bugfixes for Py2 and Py3
    • add StdoutStderrBuffer()
  • v0.29.0 - 09.06.2015 - compare v0.26.0…v0.29.0

    • WIP: Refactor unittests (DocTests must be updated for Py3 and more unittests must be written to cover all)
    • catch more directory traversal attacks in BaseFilesystemBrowser (and merge code parts)
    • Bugfix for “django.core.exceptions.AppRegistryNotReady: Models aren’t loaded yet.” if using UpdateInfoBaseModel
    • Bugfixes in dynamic_site for django 1.7
    • add: django_tools.settings_utils.InternalIps
  • v0.28.0 - 12.02.2015 - compare v0.26.0…v0.28.0

    • Work-a-round for import loops
    • (new Version number, because of PyPi stress)
  • v0.26.0 - 11.02.2015 - compare v0.25.1…v0.26.0

    • Updates for Django 1.6 and Python 3
  • v0.25.1 - 18.11.2013

    • Bugfix: Fall back to “UTF-8” if server send no encoding info
  • v0.25.0 - 28.08.2012

    • Rename cache.clear() in SmoothCacheBackends to cache.smooth_update(), so that reset timestamp is independ from clear the cache.
  • v0.24.10 - 24.08.2012

  • v0.24.9 - 24.08.2012

    • Bugfix in per-site cache middleware: set inital count values to None, if counting is disabled.
  • v0.24.8 - 24.08.2012

  • v0.24.7 - 21.08.2012

  • v0.24.6 - 21.08.2012

    • Add the filemanager library (see above)
  • v0.24.5 - 06.08.2012

    • Add Print SQL Queries context manager. (see above)
  • v0.24.4 - 26.07.2012

    • remove date from version string, cause of side-effects e.g.: user clone the repo and has the filter not installed
  • v0.24.3 - 25.07.2012

  • v0.24.2 - 10.07.2012

    • Split UpdateInfoBaseModel(): So you can only set “createtime”, “lastupdatetime” or “createby”, “lastupdateby” or both types (This is backwards compatible)
  • v0.24.1 - 12.06.2012

    • Bugfix: UsergroupsModelField() and add unittests for it
    • Add “normal users” in UsergroupsModelField()
    • New: Add create_user() and create_testusers() to BaseTestCase
    • Add a test project for the unittests. TODO: use this for all tests
  • v0.24.0 - 04.06.2012

  • v0.23.1

    • Dynamic Site would be only initialised if settings.USE_DYNAMIC_SITE_MIDDLEWARE = True
  • v0.23.0

    • Use cryptographic signing tools from django 1.4 in django_tools.utils.client_storage
  • v0.22.0

    • Add static_path.py thats used settings.STATIC_ROOT.
    • The old media_path.py which used settings.MEDIA_ROOT is deprecated and will be removed in the future.
    • auto_add_check_unique_together() can use settings.DATABASES[“default”][“ENGINE”], too.
  • v0.21.1

  • v0.21.0beta

    • New: site alias function
    • refractory ‘DynamicSiteMiddleware’ to a own app (Backwards-incompatible change: change your settings if you use the old DynamicSiteMiddleware.)
  • v0.20.1

  • v0.20.0

  • v0.19.6

    • Add some south introspection rules for LanguageCodeModelField and jQueryTagModelField
    • fallback if message for anonymous user can’t created, because django.contrib.messages middleware not used.
    • Bugfix in django_tools.utils.messages.StackInfoStorage
  • v0.19.5

  • v0.19.4

    • Bugfix for PyPy in local_sync_cache get_cache_information(): sys.getsizeof() not implemented on PyPy
    • Bugfix in template.filters.chmod_symbol()
    • Nicer solution for template.filters.human_duration()
  • v0.19.3

    • Add support for https in utils/http.py
  • v0.19.2

    • Bugfix in utils/http.py timeout work-a-round
  • v0.19.1

    • utils/http.py changes:

      • Use a better solution, see:
      • Add timeout and add a work-a-round for Python < 2.6
  • v0.19.0

    • NEW: Add utils/http.py with helpers to get a webpage via http GET in unicode
    • Change README from textile to creole ;)
  • v0.18.2

    • Bugfix: Add missing template in pypi package
  • v0.18.0

    • NEW: Add DOM compare from Gregor Müllegger GSoC work into unittest utils.
  • v0.17.1

    • Bugfix in “limit_to_usergroups”: Make choices “lazy”: Don’t access the database in init
  • v0.17

    • Add the script “upgrade_virtualenv.py”
    • Add “limit_to_usergroups”
    • Add “local sync cache”
    • Add models.UpdateInfoBaseModel
    • Update decorators.render_to
    • render_to pass keyword arguments to render_to_response() (e.g.: mimetype=“text/plain”)
    • new argument “skip_fail” in get_filtered_apps(): If True: raise excaption if app is not importable
  • v0.16.4

    • Bugfix: get_db_prep_save() got an unexpected keyword argument 'connection’ when save a SignSeparatedModelField()
  • v0.16.3

    • Update BrowserDebug: Use response.templates instead of response.template and make output nicer
  • v0.16.2

    • Merge stack info code and display better stack info on browser debug page
  • v0.16.1

    • Update django_tools.utils.messages.StackInfoStorage for django code changes.
  • v0.16.0

    • NEW: path model field (check if direcotry exist)
  • v0.15.0

    • NEW: Add a flexible URL field (own validator, model- and form-field)
  • v0.14.1

    • Bugfix: make path in MediaPathModelField relativ (remove slashes)
  • v0.14

    • NEW: django-tagging addon: Display existing tags under a tag field
  • v0.13

    • Bugfix UnicodeEncodeError in Browser debug
  • v0.12

    • NEW: django_tools.utils.messages.failsafe_message
  • v0.11

    • NEW: Store data in a secure cookie, see: utils/client_storage.py
  • v0.10.1

    • New: Display used templates in unittest BrowserDebug
    • Bugfix: catch if last usermessages exist
  • v0.10.0

    • NEW: utils around django messages, see: /django_tools/utils/messages.py
  • v0.9.1

    • Bugfix: database column was not created: don’t overwrite get_internal_type()
  • v0.9

    • New: stuff in /django_tools/fields/
    • see also backwards-incompatible changes, above!
  • v0.8.2

    • New: widgets.SelectMediaPath(): Select a sub directory in settings.MEDIA_ROOT
    • New: fields.SignSeparatedField()
  • v0.8.1

    • Add “no_args” keyword argument to installed_apps_utils.get_filtered_apps()
  • v0.8.0

    • Add model LanguageCode field and form LanguageCode field in Accept-Language header format (RFC 2616)
  • v0.7.0

    • Add decorators.py
  • v0.6.0

  • v0.5.0

    • Add template/filters.py from PyLucid v0.8.x
  • v0.4.0

    • Add experimental “warn_invalid_template_vars”
  • v0.3.1

    • Bugfix: Exclude the instance if it was saved in the past.
  • v0.3.0

    • Add utils.installed_apps_utils
  • v0.2.0

  • v0.1.0

pip upgrade

To do a pip upgrade in a virtual environment, run this:

~$ cd /YourVirtualEnv/bin
~/YourVirtualEnv/bin$ source activate
(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git://github.com/jedie/django-tools.git#egg=django-tools

The example used git readonly clone url. If you use subversion do this:

(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=http://svn.github.com/jedie/django-tools.git#egg=django-tools

If you have git write access, use this:

(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git@github.com:jedie/django-tools.git#egg=django-tools

…or just use our limit_to_usergroups.py script (see above)

fast repo update

To made a fast repository update, you can run this simple shell script:

~$ cd /path/to/django-tools
/path/to/django-tools$ ./update.sh

the update script runs “git pull origin master” or “svn update”.

contact

Come into the conversation, besides the github communication features:

Forum official ‘django-tools’ Forum
IRC #pylucid on freenode.net (Yes, the PyLucid channel…)
webchat http://webchat.freenode.net/?channels=pylucid
Release History

Release History

0.31.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.30.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.30.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.30.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.30.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.30.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.29.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.28.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.27.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.26.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.25.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.25.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.10

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.3.0725

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.2.0710

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.1.0612

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.24.0.0604

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.23.1.0514

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.23.0.0503

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.22.0.0424

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.21.1.0124

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.20.1.0123

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.20.0.0102

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.6.0926

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.5.0912

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.4.0906

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.3.0810

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.2.0810

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.1.0810

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19.0.0809

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.18.2.0714

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.18.1.0714

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.18.0.0712

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.17.0.0708

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.16.4.0517

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.16.1.0411

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.14.0.1208

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.13.0.0930

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.12.0.0916

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.12.0.0914

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.0beta

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.0beta

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.0beta

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.0beta

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.10.0.git-ce3ec2d

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.0.git-2c2330a

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.8.0.svn29

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_tools-0.31.0-py2.py3-none-any.whl (119.9 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Nov 3, 2016
django_tools-0.31.0-py3.5.egg (107.5 kB) Copy SHA256 Checksum SHA256 3.5 Egg Nov 3, 2016
django-tools-0.31.0.tar.gz (80.9 kB) Copy SHA256 Checksum SHA256 Source Nov 3, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting