Skip to content

Instantly share code, notes, and snippets.

def view_historic_reversion(request, iid, vid):
item = get_object_or_404(MDR._concept, pk=iid).item
if not user_can_view(request.user, item):
if request.user.is_anonymous():
return redirect(reverse('friendly_login') + '?next=%s' % request.path)
else:
raise PermissionDenied
old_item = default_revision_manager.get_for_object_reference(
item.__class__,
@LegoStormtroopr
LegoStormtroopr / README.md
Last active August 5, 2016 05:10
Generic autocompletes for django-autocomplete-light v3.x
@LegoStormtroopr
LegoStormtroopr / fields.py
Last active September 22, 2016 23:07
Enable pickling of Django QuerySet with abstract intermediate model
import copy_reg
from django.db.models.fields import Field, _load_field, _empty
def _load_field_for_abstract(model, field_name):
return model._meta.get_field(field_name)
@LegoStormtroopr
LegoStormtroopr / README.md
Created May 3, 2017 01:26
Handling AWS-ELB terminating a healthy django instance when accessed from an invalid hostname

Handling AWS-ELB terminating a healthy django instance when accessed from an invalid hostname

When spinning up a new service, Amazon Elastic LoadBalancer needs to check if the service is live and running. This check is done from an IP (from any IP in a private IP range) to the service, this is done by the ELB just doing a simple GET request to a specified path, with no host information - for example GET /heatbeat.

If this instance is a Django service, regardless of the page accessed, this call will fail as in a properly setup Django it is very unlikely that the IP will be in Django's settings.ALLOWED_HOSTS settings.

There are two ways around this, either:

a. Add every IP from every private IP range into your Django project's ALLOWED_HOSTS settings

# Lets run on the new infrastructure
sudo: false
language: python
python:
- "3.5"
install:
- pip install tox codecov coveralls
@LegoStormtroopr
LegoStormtroopr / boto_auth_requests.py
Created August 31, 2017 23:06
Connecting Django/Haystack to AWS ElasticSearch using IAM rotating credentials
import boto3
import os
import requests
from botocore.auth import SigV4Auth
from requests_aws4auth import AWS4Auth
from elasticsearch import RequestsHttpConnection
class AWSRequestsHttpConnection(RequestsHttpConnection):