2010-03-25 119 views
7

我有一個以傳統方式工作的電子商務網站:人們註冊,用他們的CC購買產品。Django:實施推薦計劃

它爲用戶和註冊和會話框架使用默認的Django認證系統。

現在我想實現一個推薦系統到我的系統,人們可以通過給他們的推薦鏈接邀請其他人(即mysite.com/referral/123123/),如果一個人註冊併購買一件物品,邀請人可以獲得5美元。

這怎麼實現? 例如:

  • 新的用戶進入與推介鏈接網站後,我怎麼可以跟蹤被引薦該用戶的?將他的推薦人保存到會話中?

  • 我應該對內置的django用戶模型進行哪些修改來跟蹤這些引用和引用的內容?

回答

4

爲引薦鏈接定義一組特殊的網址(在您的urls.py中)。通過一個註冊引用的Python函數傳遞它們,然後將它們以引用編號作爲參數發送到普通視圖。

這是你在想什麼,或者你還想知道什麼?

+0

感謝您的回答,我更新了我的問題。 – Hellnar 2010-03-25 17:01:20

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() 

等。

5

我有完成了這一段時間,並認爲我的筆記可以幫助某人尋找這個:

創建引薦網址

每當向用戶發佈引薦網址時,都會將其存儲在表格中。在我的情況下,我有不同的目的('邀請你的朋友','分享這個項目'等)的網址。所以我也保存了推薦類型。 爲您的網站添加一個入口點,例如http://example.com/ref/jklejis來處理傳入的網址。如果你不喜歡有一個明顯的「引薦」網址,你可以使用中間件簡單地捕捉任何URL的特殊URL參數到您的網站並處理它的方式即http://example.com/items/123?r=jklejis

軌道推介訪問者

一旦訪問者從推薦訪問,我就會生成一個cookie,並且該用戶的任何進一步請求都會被一個跟蹤表中操作的中間件跟蹤。 然後我運行一個工作來解析'行動'表來向用戶發放積分。我在這裏沒有實時需求,但如果你這樣做,那麼使用一個信號來執行特定的操作來啓動你的代碼。

最近,我遇到了這個項目,這似乎仍然是「阿爾法」,但它類似的東西,可以讓你開始:用戶會話的http://pinax-referrals.readthedocs.org/en/latest/