Как изменить шаблон, а затем продолжить писать функцию?
Итак... У меня есть функция для отправки электронной почты пользователю, а затем пользователь должен ввести тело этого письма.
Мой 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
файле.