3

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

我该如何实施?

4

1 回答 1

6

首先,将引用者保存到会话。您可能应该在某种中间件中执行此操作:

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

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

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

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

于 2013-01-04T18:42:16.470 回答