2014-10-13 3 views
0

이 내 프로젝트의 디렉토리입니다 :장고와 파이썬 사회 인증 리디렉션

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') 
:

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

이이 handshakeapp/pipelines.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' 
) 

의 일부입니다

하지만 Social Auth를 사용하여 로그인을 시도 할 때마다 /accounts/login/으로 리디렉션됩니다. . SOCIAL_AUTH_PIPELINE에서 'handshakeapp.pipelines.fill_extendeduser'을 제거하면 작동합니다. 뭐가 문제 야?

+0

맞춤형 pipline에 코드를 추가 할 수 있습니까? 그것은 무엇을 반환합니까? –

+0

@ TimmyO'Mahony 업데이트되었습니다. – michaeluskov

+0

None 또는 HttpResponse –

답변

1

문제는 fill_extendeduser에있었습니다. 그것은 예외를 제기했고, @omab에 의해 언급 된 바와 같이 :

장고 인증 프로세스는 예외를 먹고 LOGIN_URL 값으로 리디렉션합니다.이 값은 기본적으로/accounts/login /입니다. 따라서 코드 주위에 try/except 블록을 추가하여 오류가 발생하는지 확인하십시오.