인프런 커뮤니티 질문&답변

Tony Moon님의 프로필 이미지

작성한 질문수

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

django allauth - 소셜 로그인 구현하기

python manage.py test 를 돌리면 allauth.socialaccount.models.SocialApp.DoesNotExist 에러가 뜹니다.

작성

·

1.5K

·

수정됨

1

강의 따라해서 구글 로그인 연결해서 로컬사이트에서 로그인, 로그아웃이 가능하고 로그인 계정도 admin에 잘 저장되고있습니다. (기능적으로는 문제 없어보입니다.)
근데 test를 돌리면 "allauth.socialaccount.models.SocialApp.DoesNotExist" 에러가 발생하는데.. 어느 부분이 잘못 된 걸까요..
스크린샷 2023-08-26 오후 1.11.08.png스크린샷 2023-08-26 오후 1.17.13.png스크린샷 2023-08-26 오후 1.17.59.png스크린샷 2023-08-26 오후 1.20.55.png

github: https://github.com/Tonynology/django_project/tree/main/blog
(여러 번의 삽질로 SITE_ID가 3이 되었습니다.. 3으로 해야 로컬사이트 blog에 들어가지네요.)

답변 2

3

https://github.com/osc-vitap/oschub/issues/18

윗글을 보니 업데이트가 되어서 client ID랑 secret key를 추가해야 한다고 하네요.

settings.py 파일에 아래와 같이 추가하면 해결되더라구요. 위의 링크에도 있는데, 다음 링크(https://github.com/osc-vitap/oschub/commit/2146d3315a4afa7056227419903db56612bbb208)에서 보실 수 있습니다.

 

SOCIALACCOUNT_PROVIDERS = {

"google": {

"APP": {

"client_id": os.getenv("GOOGLE_CLIENT_ID"),

"secret": os.getenv("GOOGLE_SECRET_KEY"),

"key": ""

},

# These are provider-specific settings that can only be

# listed here:

"SCOPE": [

"profile",

"email",

],

"AUTH_PARAMS": {

"access_type": "online",

}

}

}

해결방법 감사합니다. 저도 저 에러때문에 고생했는데, 덕분에 해결되었습니다.

 

Test 할 때 에러는 안 생기는데, 실제 싸이트에서는 에러가 생기네요...

tests.py 를 이용할 때만 생기는 문제이기 때문에 test 코드만 수정하면 되는 거였네요. 아래 파란색만 추가해주면 test 할 때 더 이상 해당 에러가 발생하지 않습니다.

from allauth.socialaccount.models import SocialApp

def setUp(self):

self.SocialApp1 = SocialApp.objects.create(

provider="google",

name="google",

client_id="1234567890",

secret="0987654321",

)

저는 이걸로 test 때 더이상 문제도 안되고 실제 싸이트도 문제없이 잘 돌아갑니다.

 

0

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

아마 여러번 SITE를 지우고 삭제하는 과정에서 3이 되었나봅니다. 그래도 해결방법을 찾으셔서 다행입니다.

Tony Moon님의 프로필 이미지
Tony Moon
질문자

아뇨, 그럼에도 불구하고 python manage.py test를 돌리면 "allauth.socialaccount.models.SocialApp.DoesNotExist" 에러가 발생합니다..