在django中登录用户后如何将用户重定向回请求的页面?

时间:2015-03-12 15:27:24

标签: django redirect login

我一直在尝试开发一个小应用,其中一些视图需要用户登录。我使用方法装饰器将用户重定向到登录页面。但是在用户登录后,他/她被重定向到我的loginView中success_url中定义的url。我希望将用户重定向到用户实际请求的页面。

这是我的LoginView

class LoginView(FormView):
template_name = 'draint_user/home.html'
form_class = LoginForm
# after login redirect users to the homepage again
success_url = '/artwork/upload'

def form_valid(self, form):
    login(self.request, form.user_cache)

    return HttpResponseRedirect(self.get_success_url())

这是需要登录的视图

class LoginRequiredMixin(View):
@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
    return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)


class ArtworkUpload(LoginRequiredMixin, FormView):
template_name = 'artwork/artwork_upload.html'
form_class = ArtForm
success_url = 'list'

def form_valid(self, form):
    form.instance.draint_user = self.request.user
    print form.instance.draint_user
    artwork = form.save()
    result = super(ArtworkUpload, self).form_valid(form)
    return result

如果用户在未登录的情况下尝试查看ArtWorkUpload,则会将其重定向到LoginView。登录后我希望他再次被重定向到ArtWorkUpload ..请建议我一些解决方案..提前致谢

1 个答案:

答案 0 :(得分:1)

有两种方式:

  • 检查HTTP_REFERER标题
  • 为您的帖子请求提供next参数
相关问题