Надежный доступ к request.user в Django custom LoginView
У меня есть пользовательский LoginView, и я хотел бы взять корзину пользователя LazyUser до входа в систему и объединить ее с корзиной пользователя после входа:
class LoginView(FormView): ...
def form_valid(self, form):
request_user = self.request.user
user = authenticate(email=form.cleaned_data['email'], password=form.cleaned_data['password'])
if user is not None:
login(self.request, user)
try:
user.consolidate_carts(request_user)
except Exception as e:
print('error in consolidate_carts: ', e)
return HttpResponseRedirect(self.success_url)
else:
return render(self.request, 'users/login.html')
В некоторых случаях это работает, но это ненадежно - я полагаю, что это потому, что я просто ссылаюсь на self.request.user, а это SimpleLazyObject. Какой питонический/оптимальный способ хранения данных о пользователе перед входом в систему?