2011-01-09 67 views
0

我想添加到我的django應用程序的一個功能是用戶可以創建一些內容(無需註冊/創建帳戶),然後生成用戶可以使用的特定於內容的鏈接與他人分享。點擊鏈接會讓用戶回到他們創建的內容。如何在django中生成可共享的鏈接? (類似於pastebin鏈接)

基本上,我想的行爲是類似像引擎收錄網站 - 在用戶得到他們可以與其他人共享一個引擎收錄的鏈接(例如:http://pastebin.com/XjEJvSJp

我不知道什麼是最好的方式是產生這些類型的鏈接 - 有沒有人有任何想法?

謝謝!

回答

0

只要每個鏈接都是唯一的,您可以以任何您想要的方式創建這些鏈接。例如,獲取內容的MD5並使用十六進制摘要的前8個字符。

爲一個簡單的模型可能是:

class Permalink(models.Model): 
    key = models.CharField(primary_key = True, max_length = 8) 
    refersTo = models.ForeignKey(MyContentModel, unique = True) 

你也可以將refersTo(如上所述),可自動分配一個唯一的關鍵屬性。

,你需要一個匹配網址:

url("^permalink/(?P<key>[a-f0-9]{8})$", 
    "view.that.redirects.to.permalink.refersTo"), 

你的想法...

+0

這太好了,謝謝! – user256604 2011-01-10 20:31:22

1

通常,所有由它組成的是一個(可能是隨機的,可能是連續的)令牌,加上存儲在數據庫中的內容,然後按需提供。

0

基本上你只需要一個視圖,存儲數據和顯示來看。

例如存儲與:

server.com/objects/save 

,然後儲存新的模式後,它可以與

server.com/objects/[id] 

哪裏[id]是當你保存你所創建的模型的ID到達。

這不需要用戶登錄 - 它也可以爲匿名用戶工作。

0

如果你不介意你的URL會變得更長,你可以看看uuid模塊。這應該保證唯一的ID。