2011-01-09 6 views
0

私が私のdjangoアプリに追加したいと思う機能は、ユーザがいくつかのコンテンツを(サインアップ/アカウントを作成せずに)作成してから、他の人と共有する。リンクをクリックすると、ユーザーは作成したコンテンツに戻ります。djangoで共有可能なリンクを生成するには? (ペーストビンのリンクに似ています)

基本的に、私はペーストビンのようなサイトに類似する行動をたい - ユーザーが他の人と共有できるペーストビンリンク(例:http://pastebin.com/XjEJvSJp)を取得、私はよく分からない

をどのような最善の方法これらのタイプのリンクを生成することです - 誰にもアイデアはありますか?

ありがとうございます!

答えて

0

各リンクが一意である限り、任意の方法でこれらのリンクを作成できます。たとえば、コンテンツのMD5を取り出し、16進ダイジェストの最初の8文字を使用します。

そのための単純なモデルは以下のようになります。

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

あなたはまたrefersTo(上記のように)自動的に一意のキーを割り当てプロパティを作ることができます。

そして、あなたは、一致するURLが必要になります。

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

あなたがアイデアを得る...

+0

これはすばらしいです、ありがとう! – user256604

1

通常、構成されているのは、(おそらくランダムで、場合によってはシーケンシャルな)トークンと、コンテンツに加えて、DBに格納され、必要に応じて提供されるものです。

0

基本的にはあなただけのデータと、それを表示するビューを保存するビューを必要としています。

Storeはと:その後、

server.com/objects/save 

そして、新しいモデルを保存した後、それは[id]には、保存したときに作成したモデルのIDです

server.com/objects/[id] 

で到達することができます。

これは、ユーザーがサインインする必要はありません。匿名ユーザーにも有効です。

0

URLがもう少し長くなることが気になる場合は、uuidモジュールをご覧ください。これにより一意のIDが保証されます。

関連する問題