1

私は自分のサイトに @Omab による django-social-auth を使用しています。

設定でSOCIAL_AUTH_NEW_USER_REDIRECT_URL、たとえば、に設定しました/profile。私の質問は、ビューで、ユーザーが新しいかどうかを確認するにはどうすればよいですか? アクセスできる変数はありますか?

4

2 に答える 2

2

私はそれSOCIAL_AUTH_LOGIN_REDIRECT_URLSOCIAL_AUTH_NEW_USER_REDIRECT_URL両方が を指していると仮定してい/profileます。/profileそして、 を使用して送信されたユーザーに送信されるユーザー間で deferenciate したいと考えていSOCIAL_AUTH_NEW_USER_REDIRECT_URLます。

これを行う最も簡単な方法は、次のような新しい URL パターンを持つことです。

urls.py

urls = [
    (r'^profile/$', 'profile'),
    (r'^profile/new/$', 'profile', {'new_user': True}),
]

urlpatterns = patterns('project.app.views', *urls)

ビュー.py

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})

設定.py

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

:)

于 2013-03-29T10:50:36.627 に答える
1

解決策を見つけました。

変数に変数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.

回答ありがとうございます。

于 2013-03-30T10:09:34.530 に答える