Как изменить шаблон, а затем продолжить писать функцию?

Итак... У меня есть функция для отправки электронной почты пользователю, а затем пользователь должен ввести тело этого письма.

Мой views.py:

def signup(request):
    if request.method == "POST":
        context = {'has_error': False, 'data': request.POST}
        email = request.POST.get('email')
        username = request.POST.get('username')
        password = request.POST.get('password')

        code = request.POST.get('code')

        letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
        numbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9",]
        characters = letters + numbers
        length = 5
        token = "".join(random.sample(characters, length))

        body = render_to_string('authentication/email/email_body.html', {
            'username': username,
            'token': token,
        })
        send_mail(
            "Email Confirmation",
            # f"Hello {username}! Your code to confirm your email is : {token}",
            body,
            'tadejtilinger@gmail.com',
            [email]
        )
        return render(request, 'authentication/email/email_confirmation.html', context={'token': token})
    return render(request, 'authentication/signup.html')

Здесь я попытался изменить шаблон с signup.html на email_confirmation.html. У меня получилось, и теперь я хочу сказать python, что он должен делать с email_confirmation.html, но я не знаю, как это сделать. Если я попробую написать код под return render(request, 'authentication/email/email_confirmation.html', context={'token': token}), он не будет работать. Где я должен писать свой код?

Спасибо за помощь, надеюсь, я написал вопрос понятно!:)

Вам следует создать новое представление, которое будет обрабатывать то, что делает email_confirmation - иначе вы слишком много впихнете в одно представление. Ваш шаблон может просто ссылаться на другой URL/вид, даже если он сгенерирован в другом месте.

def signup(request):
   # your existing code

def confirm_email(request):
   # confirm email address and code are valid

У нового представления должен быть свой URL в вашем urls.py файле.

Вернуться на верх