2015-03-12 2 views
0

Я пытаюсь разработать небольшое приложение, в котором некоторые представления требуют, чтобы пользователь вошел в систему. Я использую декораторы методов, чтобы перенаправить пользователя на страницу входа. Но после входа пользователя в систему он перенаправляется на URL-адрес, определенный в файле success_url в моем loginView. Я хочу, чтобы пользователь был перенаправлен на страницу, на которую пользователь действительно запрашивал.Как перенаправить пользователя на запрошенную страницу после регистрации пользователя в django?

Вот мой 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

2 способа являются:

  • инспектировать HTTP_REFERER заголовка
  • обеспечивают next параметров с вашим почтовым отправлением
Смежные вопросы