diff --git a/apps/users/templates/users/login.html b/apps/users/templates/users/login.html index b3ba10ce0..455e15eb7 100644 --- a/apps/users/templates/users/login.html +++ b/apps/users/templates/users/login.html @@ -40,7 +40,7 @@
{% trans 'Login' %}
-
+ {% csrf_token %} {% if form.errors %} {% if 'captcha' in form.errors %} diff --git a/apps/users/views.py b/apps/users/views.py index adf998870..bc967cb1e 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -41,12 +41,17 @@ class UserLoginView(FormView): def get(self, request, *args, **kwargs): if request.user.is_staff: - return redirect(request.POST.get(self.redirect_field_name, reverse('index'))) - return self.render_to_response(self.get_context_data(**kwargs)) + return redirect(self.get_success_url()) + return super(UserLoginView, self).get(request, *args, **kwargs) def form_valid(self, form): auth_login(self.request, form.get_user()) - return redirect(self.request.POST.get(self.redirect_field_name, reverse('index'))) + return redirect(self.get_success_url()) + + def get_success_url(self): + return self.request.POST.get( + self.redirect_field_name, + self.request.GET.get(self.redirect_field_name, reverse('index'))) @method_decorator(never_cache, name='dispatch')