1

ユーザーがコンテンツを投稿できるサイトがあるとします。

ユーザーが匿名で貢献し、セッションの有効期限が切れた後に戻ってきた場合、その貢献は Anonymous に入金されます。

ユーザーが匿名で、コンテンツを投稿してからアカウントを作成した場合、このセッション中のすべてのユーザーの投稿をユーザー アカウントに入金するにはどうすればよいですか?

4

3 に答える 3

2

投稿されたコンテンツ ID をセッションに保存することをお勧めします。

コンテンツに余分なデータが保存されることはありません。偽ユーザーのリストが増えることはありません。

そして最も重要なことは、デザイン パターンがシンプルなままであることです。文字通り数行のコードと、残りの django の変更されていない動作です。シンプルさが大事!

# registration_view

if form.is_valid():
    user = form.save()
    posted_content =  request.session.get('posted_content')
    if posted_content:
        Content.objects.filter(id__in=posted_content).update(user=user)

セッションの有効期限が切れたユーザーのクレジットについては、私にはわかりません。

于 2011-10-27T14:16:30.927 に答える
1

このパターンは、「レイジー登録」または「レイジー サインアップ」と呼ばれることがよくあります。このタイプの機能をサポートする Django アプリがありますhttp://pypi.python.org/pypi/django-lazysignup/ですが、個人的には使用したことがありません。

于 2011-10-27T13:47:10.737 に答える
0

おそらく、セッション ID を提供されたコンテンツ (プロパティ) の一部として保存し、登録プロセス中にこのセッション ID に対してチェックを実行することができます。

于 2011-10-27T13:39:06.487 に答える