- November 25, 2008
- 0 (after 0 ratings)
From time to time I often have to work with a site that has two domain names. This can be an issue when dealing with mapping api keys so to solve this problem I whipped up a decorator function that allows a preferred domain to be enforced on a per view basis.
It wouldn't be too much to take this onto a middleware, but for my usage I just wanted a per view granularity and a decorator function suited my needs quite nicely.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
from django.http import HttpResponse, HttpResponseRedirect from django.contrib.sites.models import Site def prefered_domain(fn): """ Allows for a preferred domain name to be enforced on a per_view basis if no domain is found, it fails silently. """ def _prefered_domain(request, site_id=1): try: site = Site.objects.get(id=site_id) if request.META['HTTP_HOST'] not in site.domain: return HttpResponseRedirect('http://%s%s' % (site.domain, request.META['PATH_INFO']) ) except Site.DoesNotExist: pass return fn(request) return _prefered_domain
More like this
- Serializer factory with Django Rest Framework by julio 5 months, 3 weeks ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 6 months, 1 week ago
- Help text hyperlinks by sa2812 7 months ago
- Stuff by NixonDash 9 months, 1 week ago
- Add custom fields to the built-in Group model by jmoppel 11 months, 2 weeks ago