我想添加到我的django應用程序的一個功能是用戶可以創建一些內容(無需註冊/創建帳戶),然後生成用戶可以使用的特定於內容的鏈接與他人分享。點擊鏈接會讓用戶回到他們創建的內容。如何在django中生成可共享的鏈接? (類似於pastebin鏈接)
基本上,我想的行爲是類似像引擎收錄網站 - 在用戶得到他們可以與其他人共享一個引擎收錄的鏈接(例如:http://pastebin.com/XjEJvSJp)
我不知道什麼是最好的方式是產生這些類型的鏈接 - 有沒有人有任何想法?
謝謝!
我想添加到我的django應用程序的一個功能是用戶可以創建一些內容(無需註冊/創建帳戶),然後生成用戶可以使用的特定於內容的鏈接與他人分享。點擊鏈接會讓用戶回到他們創建的內容。如何在django中生成可共享的鏈接? (類似於pastebin鏈接)
基本上,我想的行爲是類似像引擎收錄網站 - 在用戶得到他們可以與其他人共享一個引擎收錄的鏈接(例如:http://pastebin.com/XjEJvSJp)
我不知道什麼是最好的方式是產生這些類型的鏈接 - 有沒有人有任何想法?
謝謝!
只要每個鏈接都是唯一的,您可以以任何您想要的方式創建這些鏈接。例如,獲取內容的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"),
你的想法...
通常,所有由它組成的是一個(可能是隨機的,可能是連續的)令牌,加上存儲在數據庫中的內容,然後按需提供。
基本上你只需要一個視圖,存儲數據和顯示來看。
例如存儲與:
server.com/objects/save
,然後儲存新的模式後,它可以與
server.com/objects/[id]
哪裏[id]
是當你保存你所創建的模型的ID到達。
這不需要用戶登錄 - 它也可以爲匿名用戶工作。
如果你不介意你的URL會變得更長,你可以看看uuid模塊。這應該保證唯一的ID。
這太好了,謝謝! – user256604 2011-01-10 20:31:22