私は自分のサイトに @Omab による django-social-auth を使用しています。
設定でSOCIAL_AUTH_NEW_USER_REDIRECT_URL
、たとえば、に設定しました/profile
。私の質問は、ビューで、ユーザーが新しいかどうかを確認するにはどうすればよいですか? アクセスできる変数はありますか?
私は自分のサイトに @Omab による django-social-auth を使用しています。
設定でSOCIAL_AUTH_NEW_USER_REDIRECT_URL
、たとえば、に設定しました/profile
。私の質問は、ビューで、ユーザーが新しいかどうかを確認するにはどうすればよいですか? アクセスできる変数はありますか?
私はそれSOCIAL_AUTH_LOGIN_REDIRECT_URL
とSOCIAL_AUTH_NEW_USER_REDIRECT_URL
両方が を指していると仮定してい/profile
ます。/profile
そして、 を使用して送信されたユーザーに送信されるユーザー間で deferenciate したいと考えていSOCIAL_AUTH_NEW_USER_REDIRECT_URL
ます。
これを行う最も簡単な方法は、次のような新しい URL パターンを持つことです。
urls = [
(r'^profile/$', 'profile'),
(r'^profile/new/$', 'profile', {'new_user': True}),
]
urlpatterns = patterns('project.app.views', *urls)
from django.shortcuts import render
def profile(request, new_user=False):
if new:
# if user is new code
return render(request, 'path/to/template.html', {'new_user': new_user})
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/profile'
SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/profile/new'
ここでそれについて読んでください: https://docs.djangoproject.com/en/1.5/topics/http/urls/#passing-extra-options-to-view-functions
:)
解決策を見つけました。
変数に変数is_new
が設定されrequest.session
ます。次のようにアクセスできます。
name = setting('SOCIAL_AUTH_PARTIAL_PIPELINE_KEY', 'partial_pipeline')
if name in request.session:
if request.session[name]['kwargs']['is_new'] == True:
#Do something.
回答ありがとうございます。