Задать вопрос
@ma3xak

Почему выдаёт ошибку?

Делаю 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
  • Вопрос задан
  • 1097 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
FuN_ViT
@FuN_ViT
веб-разработчик
Возможно вы используете библиотеку заточенную под питон 2.x на 3.x?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы