Перенаправление на предыдущую страницу после регистрации в view.py: Django 2

Я создаю страницу регистрации и входа в систему, и я хочу, чтобы этот пользователь после регистрации или входа в систему перенаправлялся на страницу, которая была. это мои views.py:

def signup(request):
    if request.method == 'POST':
        try:
            try:
                user = User.objects.get(username=request.POST['username'])
                return render(request, 'accounts/SignUp.html',
                              {'error': 'This UserName Has Already Exist, Pleas Try Another UserName.'})
            except:
                user = User.objects.get(email=request.POST['email'])
                return render(request, 'accounts/SignUp.html',
                              {'error': 'This Email Has Already Registered, Pleas Try Another Email.'})

        except User.DoesNotExist:
            user = User.objects.create_user(username=request.POST['username'], email=request.POST['email'],
                                            password=request.POST['pass'],
                                            first_name=request.POST['fname'], last_name=request.POST['lname'])
            auth.login(request, user)
            return render(request, 'StartPage/StartPage.html', {'error': 'Conjurations! You have Signed Up '
                                                                         'Successfully.'})

    else:
        return render(request, 'accounts/SignUp.html')  

теперь, как я могу сделать перенаправление на страницу, на которой пользователь был до того, как нажал для регистрации? Кроме того, я прошу прощения за ошибки в моем вопросе.


person Ali Akhtari    schedule 06.08.2018    source источник
comment
Пожалуйста, обратитесь к stackoverflow.com/questions/806835/   -  person gizq    schedule 06.08.2018
comment
@gizq Я проверил эту ссылку, я хочу перенаправить на предыдущую страницу в views.py, а не в моем шаблоне.   -  person Ali Akhtari    schedule 06.08.2018


Ответы (2)


Возможно, вы могли бы отправить форму с заданным URL-адресом, а затем получить переменную в view.py, например, вы можете использовать скрытый ввод и передать текущий URL-адрес в качестве значения:

# html
<input type="hidden" name="" value="">

# views.py
request.POST.get('url')
redirect_to_url = request.POST.get('url')

Вы можете использовать функцию redirect()

def singup(request):
    ...
    return redirect(redirect_to_url)

Проверьте также build_absolute_uri() , Вы можете получить полный URL, используя метод request.build_absolute_uri.

person casol    schedule 08.08.2018
comment
Поскольку я использую {% csrf-token %}, я ничего не могу получить с помощью request.Post.get(). - person Ali Akhtari; 09.08.2018

Тогда как насчет этого?

Это должно помочь.

https://github.com/thoas/django-backward

person gizq    schedule 06.08.2018