๋ด๋ถ ์๋ฒ ์ค๋ฅ: /login
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/core/handlers/exception.py", 41ํ , ๋ด๋ถ
์๋ต = get_response(์์ฒญ)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/core/handlers/base.py", ์ค 249 , _legacy_get_response์์
์๋ต = self._get_response(์์ฒญ)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/core/handlers/base.py", ์ค 187 , _get_response์์
์๋ต = self.process_exception_by_middleware(e, ์์ฒญ)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/core/handlers/base.py", ์ค 185 , _get_response์์
์๋ต = wrap_callback(์์ฒญ, callback_args, * callback_kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/contrib/auth/views.py", 54ํ , ๋ด๋ถ
return func( args, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/contrib/auth/views.py", ์ค 150 , ๋ก๊ทธ์ธ ์
)(์๊ตฌ)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/views/generic/base.py", 68ํ , ๋ณด๊ธฐ์์
๋ฐํ self.dispatch(์์ฒญ, ์ธ์, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 67, _์ธ๊ฐ
bound_func( ์ธ์, * kwargs) ๋ฐํ
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/views/decorators/debug.py", 76ํ , sensitive_post_parameters_wrapper์์
๋ณด๊ธฐ ๋ฐํ(์์ฒญ, ์ธ์, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 63, bound_func
return func.__get__(self, type(self))( args2, * kwargs2)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 67, _์ธ๊ฐ
bound_func( ์ธ์, * kwargs) ๋ฐํ
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 149, _๋ํ๋_๋ณด๊ธฐ
์๋ต = view_func(์์ฒญ, ์ธ์, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 63, bound_func
return func.__get__(self, type(self))( args2, * kwargs2)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 67, _์ธ๊ฐ
bound_func( ์ธ์, * kwargs) ๋ฐํ
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/views/decorators/cache.py", 57ํ , _wrapped_view_func์์
์๋ต = view_func(์์ฒญ, ์ธ์, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/utils/decorators.py", ์ค 63, bound_func
return func.__get__(self, type(self))( args2, * kwargs2)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/contrib/auth/views.py", ์ค 90 , ํ๊ฒฌ ์ค
return super(LoginView, self).dispatch(์์ฒญ, ์ธ์, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/views/generic/base.py", 88ํ , ํ๊ฒฌ ์ค
๋ฐํ ํธ๋ค๋ฌ(์์ฒญ, ์ธ์, * kwargs)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/views/generic/edit.py", 183ํ , ํฌ์คํธ์์
self.form_valid(์์) ๋ฐํ
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/contrib/auth/views.py", 119ํ , form_valid
auth_login(self.request, form.get_user())
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/contrib/auth/__init__.py", ์ค 160 , ๋ก๊ทธ์ธ ์
user_logged_in.send(๋ฐ์ ์=user.__class__, ์์ฒญ=์์ฒญ, ์ฌ์ฉ์=์ฌ์ฉ์)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/dispatch/dispatcher.py", ๋ผ์ธ 193, ๋ณด๋ด๋ค
self._live_receivers(๋ฐ์ ์)์ ์์ ์์ฉ
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Django-1.11.7-py3.6.egg/django/dispatch/dispatcher.py", ์ค 193,
self._live_receivers(๋ฐ์ ์)์ ์์ ์์ฉ
ํ์ผ "/Users/zhunishengrikuaile/Downloads/bootcamp-master/bootcamp/authentication/models.py", ์ค 206, on_user_login
Profile.objects.get(user=kwargs['user']).notify_login()
ํ์ผ "/Users/zhunishengrikuaile/Downloads/bootcamp-master/bootcamp/authentication/models.py", 157ํ, notify_login
self.group_notification('๋ก๊ทธ์ธ')
ํ์ผ "/Users/zhunishengrikuaile/Downloads/bootcamp-master/bootcamp/authentication/models.py", 187ํ, group_notification
๊ทธ๋ฃน('์๋ฆผ').send({
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/channels/channel.py", 65ํ, __init__
self.channel_layer = channel_layers[๋ณ์นญ]
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/channels/asgi.py", 70ํ, __getitem__
self.backends[ํค] = self.make_backend(ํค)
ํ์ผ "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/channels/asgi.py", 32ํ, make_backend
๊ตฌ์ฑ = self.configs[์ด๋ฆ].get("๊ตฌ์ฑ", {})
ํค ์ค๋ฅ: '๊ธฐ๋ณธ๊ฐ'
ํด๊ฒฐ ๋ฐฉ๋ฒใ
์ค๋ฅ ๋ก๊ทธ์์ ๋ฌธ์ ๋ฅผ ์ ํํ๊ฒ ์๋ณํ ์ ์์ต๋๋ค. ์ค์ ํ์ผ์ ์์์ ๊ด๋ จ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. REDIS ๊ตฌ์ฑ๊ณผ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํด๊ฒฐ๋์์ต๋๋ค. ๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํด๊ฒฐ๋์์ต๋๋ค. ๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค.