FishHook
а на форму action не надо вешать?
kozlo22Это не тестовое задание случаем?
Не могу разобраться с тем, как отправлять email.Есть такая страница. Там есть форма для отправки сообщения на email.Вот мой код секции: с формой
to_nightНет. Просто для себя пытаюсь сделать.
Это не тестовое задание случаем?
kozlo22У тебя так в settings, или тут ошибка?
MAIL_BACKEND
FishHookда
kozlo22,а CSRFMiddleware подключен?
to_nightТак веб-консоль все показывает же. Но я таки поменял и не вижу никаких изменений. Ошибка в том, что используется неразрешенный метод. Наткнулся вот на это. Поменял представление:
Попробуй форму генерировать из модели а потом уже отправлять email из сгенерированой формы.И чтобы видеть, что отправляется, нужно установить в setttings EMAIL_BACKEND = ‘django.core.mail.backends.console.EmailBackend’ вместо EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend’ И вообще можно из консоли поотправлять, посмотреть что возвращает.
class FormView(FormView): form_class = ContactForm initial = {'key':'value'} template_name = 'index.html' def get(self, request, *args, **kwargs): form = self.form_class(initial=self.initial) return render(request, self.template_name, {'form': form}) def post(self, request, *args, **kwargs): form = self.form_class(request.POST) try: send_mail(subject, message, sender, ['email@gmail.com']) except BadHeaderError: return HttpResponse('Invalid header found.') return render(request, 'index.html', {'form':form,})
# forms.py class ContactForm(forms.Form): name = forms.CharField() subject = forms.CharField(max_length=100) sender = forms.EmailField() message = forms.CharField() # views.py def contact(request): form = ContactForm(request.POST or None) if form.is_valid(): try: send_mail( form.cleaned_data.get('subject'), form.cleaned_data.get('message'), form.cleaned_data.get('sender'), ['kozlovsky.a.a@gmail.com'] ) except BadHeaderError: return HttpResponse('Invalid header found.') form = ContactForm() return render(request, 'index.html', { 'form': form }) # urls.py from .views import contact urlpatterns = patterns('', (r'^contact/$', contact, name="contact"), )
# index.html <form action="{% url 'contact' %}" method="post"> {{ form.as_p }} {% csrf_token %} <input type="submit" value="Submit"> </form>
class FormView(FormView): form_class = ContactForm initial = {'key':'value'} template_name = 'index.html' def get(self, request, *args, **kwargs): form = self.form_class(initial=self.initial) return render(request, self.template_name, {'form': form}) def post(self, request, *args, **kwargs): form = self.form_class(request.POST) try: send_mail(subject, message, sender, ['email@gmail.com']) except BadHeaderError: return HttpResponse('Invalid header found.') return render(request, 'index.html', {'form':form,})