1. Concept
- django-taggit: django-taggit a simpler approach to tagging with Django.
- django-js-reverse: Javascript URL handling for Django that doesn't hurt.
- django-impersonate: Simple application to allow superusers to "impersonate" other non-superuser accounts.
2. Easy to install
- Django apps need to be added to
INSTALLED_APPS
. Regular Python packages do not. - Examples of regular Python packages:
- Django apps need to be added to
- Don't show all if something isn't set, e.g.,
fields = None
shouldn't mean all fields.
- Don't show all if something isn't set, e.g.,
- For example,
AVATAR_MAX_SIZE
of django-avatar could be hardcoded, but it's a setting.
- For example,
- For example, django-taggit supports custom tag parsers via settings.
- Check a implementation at python-social-auth.
- Users might depend on your old migration files because they ran it against their data in the past.
- Check this script to generate AUTHORS file from git history.
3. Easy to use
- Check tox.ini of popular projects like django-filter and django-taggit.
- Examples of implementations:
- Check a implementation at django-registration.
- Examples of implementations:
- Examples of implementations:
- Examples of implementations:
- For example, django-filter raises
ImproperlyConfigured
when the developer forgets to specifyfilterset_class
ormodel
in aFilterView
.
- For example, django-filter raises
4. Easy to integrate
- For example, django-avatar has a
avatar
template tag to generate HTMLimg
tags, but the logic to generate avatar URLs is isolated atproviders.py
.
- For example, django-avatar has a
- Check the reason on this StackOverflow answer.
- Check a implementation at django-recaptcha.
- Check a implementation at django-hashid-field.