0

これは私のプロジェクトのディレクトリです:

/handshakeapp:
    templates/
    __init__.py
    admin.py
    models.py
    pipelines.py
    views.py
/VKHandshake:
    __init__.py
    settings.py
    urls.py
    ...
manage.py

これは一部ですsettings.py

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
    'handshakeapp.pipelines.fill_extendeduser'
)

これはhandshakeapp/pipelines.py次のとおりです。

from models import ExtendedUser

def fill_extendeduser(strategy, details, user=None, is_new=False, *args, **kwargs):
    if user and is_new:
        user.extendeduser_set.create(user=user.get_username(), countingID=None, profilePic='http://localhost:8000/pic.png')

/accounts/login/しかし、ソーシャル認証を使用してログインしようとするたびにリダイレクトされます。'handshakeapp.pipelines.fill_extendeduser'SOCIAL_AUTH_PIPELINE から削除すると機能します。どうしたの?

4

1 に答える 1

1

問題はfill_extendeduser機能にありました。例外が発生し、@omab が述べたように:

Django 認証プロセスは例外を食べ、デフォルトで /accounts/login/ である LOGIN_URL の値にリダイレクトします。そのため、コードの周りに try/except ブロックを追加して、エラーが発生しているかどうかを確認してください。

于 2014-10-23T17:18:25.720 に答える