我想添加到我的django应用程序的一个功能是用户能够创建一些内容(无需注册/创建帐户),然后生成用户可以与他人共享的特定于内容的链接。点击链接会将用户带回他们创建的内容。
基本上,我希望这种行为与像pastebin这样的网站类似 - 用户可以获得可以与其他人共享的pastebin链接(例如:http://pastebin.com/XjEJvSJp)
我不确定生成这些类型链接的最佳方法是什么?有没有人有任何想法?
谢谢!
答案 0 :(得分:1)
通常所有由一个(可能是随机的,可能是连续的)令牌加上内容,存储在数据库中,然后按需提供。
答案 1 :(得分:1)
如果您不介意您的网址会更长一些,您可以查看uuid模块。这应该保证唯一的ID。
答案 2 :(得分: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"),
你明白了......
答案 3 :(得分:0)
基本上你只需要一个存储数据的视图和一个显示它的视图。
e.g。存储:
server.com/objects/save
然后,在存储新模型后,可以使用
来访问它server.com/objects/[id]
其中[id]
是您保存时创建的模型的ID。
这不需要用户登录 - 它也适用于匿名用户。