完成此方法。
URL。py公司
# separate my custom login from django default auth
path('accounts/login/', CustomLoginView.as_view(), name='login'),
path('accounts/', include('django.contrib.auth.urls')),
意见。py公司
def custom_login(request, user, backend=None):
"""
modificated generic.auth login.
Send signal with extra parameter: previous [session_key]
"""
# get previous seesion_key for signal
prev_session_key = request.session.session_key
"""
original code
"""
# send extra argument prev_session_key
user_logged_in.send(sender=user.__class__, request=request, user=user, prev_session_key=prev_session_key)
# custom class-based view overriden on LoginView
class CustomLoginView(LoginView):
def form_valid(self, form):
"""Security check complete. Log the user in."""
# changed default login
custom_login(self.request, form.get_user())
return HttpResponseRedirect(self.get_success_url())
当我基于default login()进行custom\u登录时,恐怕这不是最好的方法,因为我正在复制原始代码的一部分。也许这里最好用一个装饰师?