diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..797bd78 --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +django-shorturls +================ + +[](https://travis-ci.org/bfirsh/django-shorturls) +[](http://badge.fury.io/py/django-shorturls) + +A custom URL shortening app for Django, including easy ``rev=canonical`` +support. + +Most code was originally by Simon Willison; see +http://simonwillison.net/2009/Apr/11/revcanonical/ for details. Improved +slightly and packaged by Jacob Kaplan-Moss. + +Patches welcome: http://github.com/jacobian/django-shorturls + +Usage +----- + +So, you want to host your own short URLs on your Django site: + +1. In your settings, define a set of prefixes for short URLs: + + SHORTEN_MODELS = { + 'A': 'myapp.animal', + 'V': 'myapp.vegetable', + 'M': 'myapp.mineral' + } + + The keys are string prefixes; they can be any string, actually, + but since we're going for short a single character is probably good. + + Values are the (hopefully-familiar) ``"<app-name>.<model-class>"`` used + by Django to identify a model. Remember: ``app-name`` is the + (case-sensitive) last bit of your app's name in ``INSTALLED_APPS``, and + ``<model-class>`` is your model class's name, lowercased. + + Make sure your models have a ``get_absolute_url()`` method defined. + +2. Wire up the redirect view by adding to your URLconf: + + ('^short/', include('shorturls.urls')) + +3. If you'd like to quickly link to shortened URLs in your templates, stick + ``"shorturls"`` in ``INSTALLED_APPS``, and then in your templates do: + + {% load shorturl %} + <a href="{% shorturl object %}">...</a> + + (where ``object`` is a model instance). + + Alternatively:: + + {% load shorturl %} + {% revcanonical object %} + + This generates the whole ``<link rev="canonical" href="...">`` tag for + you. + +That's it. + +If you'd like more control, keep reading. + +Settings +-------- + +Available settings are: + +#### ``SHORTEN_MODELS`` + +You've seen this one. + +#### ``SHORT_BASE_URL`` + +If defined, the ``shorturl`` and ``revcanonical`` template tags will +prefix generated URLs with this value. Use this if you've got a shorter +domain name you'd like to use for small URLs. + +For example, given ``SHORT_BASE_URL = 'http://exm.pl/'``, ``{% shorturl +obj %}`` would return something like ``http://exm.pl/AbCd``. + +#### ``SHORTEN_FULL_BASE_URL`` + +The domain to redirect to when redirecting away from the small URL. +Again, you'll use this if your short URL base and your "real" site +differ. + +If not defined, the redirect view will try to guess the proper domain by +consulting the ``django.contrib.sites`` framework, if installed, or the +requested domain, if not. |
