Django:实施推荐计划

时间:2010-03-25 16:50:46

标签: django referrals

我有一个以经典方式运作的电子商务网站:人们注册,使用他们的CC购买产品。

它为用户以及注册和会话框架使用默认的Django auth系统。

现在我想在我的系统中实现一个推荐系统,人们可以通过提供他们的推荐链接(即mysite.com/referral/123123/)来邀请其他人,如果有人注册并购买了一个项目,则邀请者获得5美元。

如何实施? 例如:

  • 新用户使用引荐链接进入网站后,如何使用引荐来源跟踪此用户?将他的推荐人保存到会话中?

  • 我应该对内置的django用户模型进行哪些修改来跟踪这些引用和引用的引用?

4 个答案:

答案 0 :(得分:6)

我已经做了一段时间,并认为我的笔记可以帮助有人寻找这个:

创建引荐网址

每当您向用户发出引荐网址时,请将其存储在表格中。在我的情况下,我有不同目的的网址('邀请你的朋友','分享这个项目'等)所以我也存储了推荐的类型。 为您的网站添加一个入口点,例如 http://example.com/ref/jklejis 来处理传入的网址。如果你不喜欢有一个明显的“推荐”网址,你可以使用中间件在网站的任何网址上捕获一个特殊的网址参数,并按照这种方式进行处理,即 http://example.com/items/123?r=jklejis < / p>

跟踪推荐访问者

一旦访问者从推荐中访问我就会生成一个cookie,并且该用户的任何进一步请求都会被跟踪表中操作的中间件跟踪。 然后我运行一个工作来解析'action'表以向用户发放信用。我这里没有实时要求,但是如果你这样做,那么就使用信号来执行特定的操作来启动你的代码。

我最近遇到过这个似乎仍然是“alpha”的项目,但它做了类似的事情,可以让你开始:http://pinax-referrals.readthedocs.org/en/latest/

答案 1 :(得分:4)

为引荐链接定义一组特殊的网址(在urls.py中)。将它们传递给注册引用的Python函数,然后将引用号作为参数发送到普通视图。

这是你想到的,或者你还想知道什么?

答案 2 :(得分:4)

您可以使用非常简单的模型来跟踪它们

class UserReferral(models.Model):
    referrer = models.ForeignKey(User)
    referred = models.ForeignKey(User)

    class Meta:
        unique_together = (('referrer', 'referred'),)

然后您可以计算用户推荐的数量:

UserReferral.objects.filter(referrer=user).count()

等。

答案 3 :(得分:2)

特别是在他们越过注册/登录的边界之后跟踪用户的会话是一个棘手的问题。我写了一个推荐应用http://paltman.com/how-to-easily-add-referrals-to-a-website/