You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Django 1.6+ library for setting your ALLOWED_HOSTS based on the domains in django.contrib.sites
Usage is something like the following, in your settings.py or equivalent:
from allowedsites import AllowedSites
ALLOWED_HOSTS = AllowedSites(defaults=('mytestsite.com',))
Or, if you want to use your cache backend:
from allowedsites import CachedAllowedSites
ALLOWED_HOSTS = CachedAllowedSites()
A single key, allowedsites will be inserted containing an unsorted collection
of all the domains that are in the django.contrib.sites. For the sake of allowing
multiple processes to keep up to date with the Site values without hitting
the database, using a shared cache (ie: not LocMemCache) is encouraged.
The CachedAllowedSites also provides an update_cache class method which
may be used as a signal listener:
from django.db.models.signals import post_save
from django.contrib.sites.models import Site
post_save.connect(CachedAllowedSites.update_cache, sender=Site,
dispatch_uid='update_allowedsites')
You can modify the the defaults:
from allowedsites import AllowedSites
ALLOWED_HOSTS = AllowedSites(defaults=('mytestsite.com',))
ALLOWED_HOSTS += AllowedSites(defaults=('anothersite.net',))
ALLOWED_HOSTS -= AllowedSites(defaults=('mytestsite.com',))
# ultimately, only anothersite.net is in the defaults
Other uses?
It may work with django-csp (Content Security Policy headers),
django-dcors (Cross-Origin Resource Sharing headers) and others. I don't know.
About
Dynamic ALLOWED_HOSTS based on the configured django.contrib.sites