我想保存用户注册时来自的网站。我对用户在注册前在我的网站上看到的第一页的HTTP referer感兴趣。
我该如何实施?
答案 0 :(得分: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
(显然,视情况更改yoursite.com等)
然后,在您的注册视图代码中,将会话中的引用者保存到您的用户对象。
这当然取决于是否有存储该信息的地方。如果您有自定义用户对象,则可以为其创建字段。在Django 1.5之前,您可以使用AUTH_PROFILE_MODULE来扩展用户类。见https://docs.djangoproject.com/en/dev/topics/auth/customizing/#extending-the-existing-user-model