我一直在尝试开发一个小应用,其中一些视图需要用户登录。我使用方法装饰器将用户重定向到登录页面。但是在用户登录后,他/她被重定向到我的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 ..请建议我一些解决方案..提前致谢
答案 0 :(得分:1)
有两种方式:
HTTP_REFERER
标题next
参数