【问题标题】:Django: Implementing a referral programDjango:实施推荐计划
【发布时间】:2011-01-31 19:59:14
【问题描述】:

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

它为用户和注册和会话框架使用默认的 Django 身份验证系统。

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

如何实现? 例如:

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

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

【问题讨论】:

    标签: django referrals


    【解决方案1】:

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

    创建推荐网址

    每当您向用户发出推荐网址时,请将其存储在表格中。就我而言,我有用于不同目的的网址(“邀请您的朋友”、“分享此项目”等),因此我也存储了推荐类型。 向您的站点添加一个入口点,例如 http://example.com/ref/jklejis 以处理传入的 url。如果您不喜欢明显的“推荐”网址,您可以使用中间件简单地捕获您网站的任何网址上的特殊 url 参数并以这种方式处理它,即 http://example.com/items/123?r=jklejis

    跟踪被推荐的访问者

    只要访客通过推荐访问,我就会植入一个 cookie,并且该用户的任何进一步请求都会被一个跟踪表格中操作的中间件跟踪。 然后我运行一个作业来解析“动作”表以向用户发放信用。我在这里没有实时要求,但如果你这样做了,那么就使用特定操作的信号来启动你的代码。

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

    【讨论】:

      【解决方案2】:

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

      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】:

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

      这是您的想法,还是您还想知道什么?

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2021-08-09
          • 1970-01-01
          • 2014-03-27
          • 2011-09-12
          • 2011-10-07
          • 1970-01-01
          • 1970-01-01
          • 2020-11-14
          • 1970-01-01
          相关资源
          最近更新 更多