- Author:
- jamiecURLe
- Posted:
- November 25, 2008
- Language:
- Python
- Version:
- 1.0
- Score:
- 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
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.