The Django Common (djcommon) project is a set of project independent reusable features easy to use while developing with the Django Framework - https://www.djangoproject.com/.
Currently, the following features have been gathered and are working in Django 1.3+
- models
- TimeStampedModel (adds date_created and date_modified)
- fields
- MultiSelectField (for selecting multiple choices=)
- views
- server_error (500 error handler with RequestContext)
- admin
- EnhancedModelAdmin (keeping filter states after edits)
- EnhancedInline (implements VerboseManyToManyRawIdWidget on m2m fields when name in raw_id_fields)
- middleware
- SSLMiddleware
- RestrictedAccessMiddleware
- StripWhitespaceMiddleware
- helpers
- get_setting (shortcut for getattr(settings, 'SITE_ID'))
- uniqify_list
- contains
- auth
- EmailBackend (authenticate user by email address or username)
- forms
- EnhancedForm
- EnhancedModelForm (combined_fields)
- widgets
- DiggPaginatorWidget
- admin.VerboseManyToManyRawIdWidget
- template
- get_available_templates
- get_template_choices
- CachedNode
- ContextUpdatingNode
- CachedContextUpdatingNode
- templatetags
- common
- filters: cleartags, cut, replace, nowhitespace, cleanwhitespace, startswith, endswith
- development
- filters: attributes, attributes_formatted, getattribute
- templates
- forms/as_div.html
- send_email_with_template (including an handy directory structure for templates)
- content_to_pdf
- content_to_response
- render_to_pdf
- xml
- fast_iter
- admin
- EnhancedInline with Nested inline function
If you have ideas for other features please let me know.
- pip install djcommon
- Add djcommon to your INSTALLED_APPS if you want to use templates and templatetags