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

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽