Jeśli potrzebujemy przechwytywać odpowiednie przekierowania z innych stron i zczytywać odpowiednie wartości(np. linki z programu partnerskiego) to możemy stworzyć własną warstwę pośrednią która to będzie w prosty sposób robić:
class PartnershipMiddleware(object):
def process_request(self, request):
if request.method == 'GET':
#pobierz i zapisz w sesji odpowiednie wartości
Kod umieszczamy w pliku middleware.py w odpowiednim appie. Wszystko dzieje się w funkcji process_request, w której możemy przechwycić każdą rzecz i zrobić z nią co tylko chcemy. Ja akurat u siebie przechwytywałem wartości z GET i zapisywałem je do sesji do pozniejszego uzytku. Należy jeszcze w pliku settings.py dodać naszą warstwę:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
#jakies inne warstwy
'modules.partnership.middleware.PartnershipMiddleware',
)
I gotowe