ユーザーがコンテンツを投稿できるサイトがあるとします。
ユーザーが匿名で貢献し、セッションの有効期限が切れた後に戻ってきた場合、その貢献は Anonymous に入金されます。
ユーザーが匿名で、コンテンツを投稿してからアカウントを作成した場合、このセッション中のすべてのユーザーの投稿をユーザー アカウントに入金するにはどうすればよいですか?
ユーザーがコンテンツを投稿できるサイトがあるとします。
ユーザーが匿名で貢献し、セッションの有効期限が切れた後に戻ってきた場合、その貢献は Anonymous に入金されます。
ユーザーが匿名で、コンテンツを投稿してからアカウントを作成した場合、このセッション中のすべてのユーザーの投稿をユーザー アカウントに入金するにはどうすればよいですか?
投稿されたコンテンツ 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)
セッションの有効期限が切れたユーザーのクレジットについては、私にはわかりません。
このパターンは、「レイジー登録」または「レイジー サインアップ」と呼ばれることがよくあります。このタイプの機能をサポートする Django アプリがありますhttp://pypi.python.org/pypi/django-lazysignup/ですが、個人的には使用したことがありません。
おそらく、セッション ID を提供されたコンテンツ (プロパティ) の一部として保存し、登録プロセス中にこのセッション ID に対してチェックを実行することができます。