Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2014 20:43:01

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Форма для отправки email

FishHook
а на форму action не надо вешать?

Офлайн

#2 Июль 7, 2014 20:50:46

to_night
От: Киев
Зарегистрирован: 2013-12-12
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Форма для отправки email

kozlo22
Не могу разобраться с тем, как отправлять email.Есть такая страница. Там есть форма для отправки сообщения на email.Вот мой код секции: с формой
Это не тестовое задание случаем?

Офлайн

#3 Июль 7, 2014 21:00:53

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Форма для отправки email

to_night
Это не тестовое задание случаем?
Нет. Просто для себя пытаюсь сделать.

Офлайн

#4 Июль 8, 2014 06:11:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Форма для отправки email

kozlo22,
а CSRFMiddleware подключен?



Офлайн

#5 Июль 8, 2014 08:35:00

to_night
От: Киев
Зарегистрирован: 2013-12-12
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Форма для отправки email

Попробуй форму генерировать из модели а потом уже отправлять email из сгенерированой формы.И чтобы видеть, что отправляется, нужно установить в setttings EMAIL_BACKEND = ‘django.core.mail.backends.console.EmailBackend’ вместо EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend’ И вообще можно из консоли поотправлять, посмотреть что возвращает.

Офлайн

#6 Июль 8, 2014 08:37:34

to_night
От: Киев
Зарегистрирован: 2013-12-12
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Форма для отправки email

kozlo22
MAIL_BACKEND
У тебя так в settings, или тут ошибка?

Офлайн

#7 Июль 8, 2014 18:11:20

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Форма для отправки email

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,})
Ничего не изменилось.
А c настройкой urlов это не может быть связано?

Офлайн

#8 Июль 15, 2014 14:17:18

kise97
Зарегистрирован: 2012-05-31
Сообщения: 83
Репутация: +  4  -
Профиль  

Форма для отправки email

# 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>


Я так и не понял, зачем вы передавали форму во вьюху и при этом не использовали ее. Да и вообще, не вижу никаких вопросов в вашем вопросе.. .

Офлайн

#9 Июль 15, 2014 15:12:52

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Форма для отправки email

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,})
Оригинальный код , прям из палаты мер и весов.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version