Еще один странный момент.
Я немного поправил код и добавил вьюхе декоратор csrf_exempt. Ошибка 403 пропала, но вместо нее выяснилось, что отправляемые данные невалидны. Вот как выглядит новый код скрипта:
import requests
URL = 'http://127.0.0.1:8000/'
client=requests.session()
client.get(URL)
csrftoken = client.cookies['csrftoken']
mycs = str(csrftoken)
form_arg = {'lastname':'Игин','name':'Антон', 'middlename':'Константинович', 'birthday':'12-04-2005', 'telephone':'8960972902'}
r = requests.post('http://127.0.0.1:8000/form_call/', params=form_arg)
А вот в каком виде данные приходят на почту при ручном заполнении формы:
ФИО:Антон Игин Константинович
Дата рождения: 2017-04-05
Телефон: (896) 097-29-02
У меня подозрения, что тот же телефон хоть и вводится пользователем без скобок и тире, в самом скрипте придется писать как положено. Но может, у меня проблема именно в самой вьюхе? Скидываю на всякий случай её код на проверку:
@csrf_exempt
def form_call(request):
if request.method=='POST':
form = Call_Form(request.POST)
name = request.POST.get('name', '')
lastname = request.POST.get('lastname', '')
middlename = request.POST.get('middlename', '')
birthday = request.POST.get('birthday', '')
telephone = request.POST.get('telephone', '')
if form.is_valid():
mail_host = SMTPMail.objects.all()[0]
rec_list = RecMail.objects.all()
recipients= []
for mail in rec_list:
recipients.append(mail.mail) #Список получателей
message = '''
На сайте вашей структуры NL International появилась новая заявка на звонок! Вот данные, предоставленные новым консультантом:
ФИО:{0} {1} {2}
Дата рождения: {3}
Телефон: {4}'''.format(name,lastname, middlename, birthday, telephone)
subject= 'Заявка на звонок'
send_mail(subject, message, mail_host.mail, recipients, fail_silently=False)
return redirect('/thanks/')
else:
return redirect('/error/')
Updated 4 April 2017, 14:53 by aigin95.