Django:用户注册时保存引用

pio*_*kuc 3 django http-referer

我想保存用户注册时来自的网站.我对用户在注册前在我的网站上看到的第一页的HTTP引用感兴趣.

我该如何实现它?

spo*_*key 5

首先,将引荐来源保存到会话中.您可能应该在某种中间件中执行此操作:

import urlparse

class SaveReferrerMiddleware(object):
    def process_request(self, request):
        referer = request.META.get('HTTP_REFERER', None)
        if referer is not None:
            domain = urlparse.urlparse(referer).netloc
            if domain not in ['www.yoursite.com', 'yoursite.com']:
                # External referer
                request.session['initial_referer'] = referer
Run Code Online (Sandbox Code Playgroud)

(显然,根据需要更改yoursite.com等)

然后,在您的注册视图代码中,将会话中的引用者保存到您的用户对象.

当然,这将取决于在哪里存储该信息.如果您有自定义用户对象,则可以为其创建字段.在Django 1.5之前,您可以使用AUTH_PROFILE_MODULE来扩展用户类.请参阅https://docs.djangoproject.com/en/dev/topics/auth/customizing/#extending-the-existing-user-model