Django で一意の ID をユーザー(ブラウザ) に割り振る
code:tracking_middleware.py
import uuid
CLIENT_ID_COOKIE_NAME = 'DJANGO_SESSION'
class TrackerMiddleware(object):
"""
ブラウザごとに固有のCookieを発行してトラッキングするミドルウェア
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
tracking_id = request.COOKIES.get(CLIENT_ID_COOKIE_NAME)
if not tracking_id:
tracking_id = uuid.uuid4().hex
# プログラム中からは request.tracking_id としてアクセスできる
request.tracking_id = tracking_id
response = self.get_response(request)
if not request.COOKIES.get(CLIENT_ID_COOKIE_NAME):
response.set_cookie(CLIENT_ID_COOKIE_NAME, tracking_id)
return response
code:settings.py
MIDDLEWARE = [
...
# 追加
'path.to.tracking_middleware.TrackerMiddleware',
]
Middleware で UUID の Cookie を発行してみるようにしてみた