Делаю SMS подтверждение регистрации
# -*- coding: utf-8 -*-
from django.shortcuts import render, redirect, render_to_response
from sms_signup.smsc_api import *
from sms_signup.forms import smsForm
import random
from sms_signup.models import smsModel
# Create your views here.
def smsreg(request):
if request.method == "POST":
phone_number = request.POST.get("phone")
phone_sms_code = request.POST.get("code")#Читаем данные с поля
smsNEW = smsForm(request.POST)
x = random.randint(0000, 9999)#Генерируем код для отправки
code_sms = str(x)#Преобразуем к строке для отправки
smsc = SMSC()
...
r = smsc.send_sms(phone_number, "Ваш код для регистрации на сайте:"+code_sms , sender="sms")#Отправка смс
return render(request, 'sms_signup/success.html', locals())
if smsNEW.is_valid():
code_sms == phone_sms_code #Проверяем совпадение отправленного кода и введёного
smsNEW.save()
return render_to_response('sms_signup/uspeh.html')
else:
smsNEW = smsForm()
return render(request, 'sms_signup/input.html', {'smsNEW':smsNEW})
Для всего процесса используеться три шаблона,
<form action="" method="POST">
{% csrf_token %}
{{ smsNEW.phone }}
<button type="submit">Отправить смс</button>
</form>
<form action="" method="POST">
{% csrf_token %}
{{ smsNEW.code }}
<button type="submit">Активировать аккаунт</button>
</form>
<h1>Поздравляем с успешной регистрацией</h1>
После получения кода, я пытаюсь сделать проверку что бы введённый код совпадал с отправленным, однако после отправки формы я получаю ошибку
Internal Server Error: /sms/
Traceback (most recent call last):
File "C:\Phyton\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
response = get_response(request)
File "C:\Phyton\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Phyton\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "E:\work\life\sms_signup\views.py", line 18, in smsreg
r = smsc.send_sms(phone_number, "Ваш код для регистрации на сайте:"+code_sms , sender="sms")
File "E:\work\life\sms_signup\smsc_api.py", line 65, in send_sms
ifs(time, "&time=" + quote(time), "") + ifs(query, "&" + query, ""))
File "C:\Phyton\lib\urllib\parse.py", line 787, in quote
return quote_from_bytes(string, safe)
File "C:\Phyton\lib\urllib\parse.py", line 812, in quote_from_bytes
raise TypeError("quote_from_bytes() expected bytes")
TypeError: quote_from_bytes() expected bytes
[14/May/2018 16:23:59] "POST /sms/ HTTP/1.1" 500 79788