Добрый вечер.
Есть сайт, на котором форма заявки есть на всех страницах. Для упрощения работы создал контекстный процессор для forms.py. Форма письма отправляет, но бесконечное количество, т.е. процесс отправки не завершается, пока не остановишь принудительно.
Forms.py
from django.core.context_processors import request
from django import forms
from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail, BadHeaderError
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100,widget=forms.TextInput(attrs = {'required': 'required'}))
sender = forms.EmailField(widget=forms.TextInput(attrs = {'required': 'required'}))
message = forms.CharField(widget = forms.Textarea(attrs = {'required': 'required'}))
copy = forms.BooleanField(required = False)
def my_form(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
sender = form.cleaned_data['sender']
message = form.cleaned_data['message']
copy = form.cleaned_data['copy']
plus = message + ' ' + sender
recipients = ['mail@ya.ru']
if copy:
recipients.append(sender)
try:
send_mail(subject, plus, 'mail@ya.ru', recipients)
except BadHeaderError:
return HttpResponse('Invalid header found')
return render(request, 'single_index.html')
else:
form = ContactForm()
return {'form': form}