def contact_admin(request): #check if form was posted if request.method == 'POST': #create a form instance and populate it with data from the request form = ContactForm(request.POST) #check whether user data is valid if form.is_valid(): #send mail subject = form.cleaned_data['subject'] message = form.cleaned_data['message'] from_email = form.cleaned_data['from_email'] try: send_mail(subject, message, from_email, [ADMIN_EMAIL]) except Exception: message = u'Во время отправки письма случилась непредсказуемая ошибка.Попробуйте воспользоваться позже.' else: message = u'Сообщение успешно отправлено!' #redirect to same contact page with success message return HttpResponseRedirect( u'%s?status_message=%s' % (reverse('contact_admin'), message)) else: form = ContactForm() return render(request, 'contact_admin/form.html', {'form': form})
def test_invalid_form(self): data = dict(sender_name='test', sender_email='*****@*****.**', subject='', message='') form = ContactForm(data=data) self.assertFalse(form.is_valid())
def ContactFormProcessor(request, context_dictionary): if request.method == 'POST': if 'contact' in request.POST: # create a form instance and populate it with data from the request: contact_form = ContactForm(request.POST) # check whether it's valid: if contact_form.is_valid(): first_name = contact_form.cleaned_data['first_name'] last_name = contact_form.cleaned_data['last_name'] address = contact_form.cleaned_data['address'] zipcode = contact_form.cleaned_data['zipcode'] phone = contact_form.cleaned_data['phone'] sender = contact_form.cleaned_data['email'] subject = contact_form.cleaned_data['subject'] subject = subject + '-' + first_name + ' ' + last_name message = contact_form.cleaned_data['message'] recipients = [site_settings_processor(request)['site_email'],] fullemail = first_name + " " + last_name + " " + "<" + sender + ">" send_mail(subject, message, fullemail, recipients, fail_silently=False) context_dictionary['first_name'] = contact_form.cleaned_data['first_name'] else: context_dictionary['form_errors'], context_dictionary['contact_form'] = True, contact_form else: pass else: contact_form = ContactForm() context_dictionary['contact_form'] = contact_form
def contact_form(request): # If the request method is POST, it means that the form has been submitted # and we need to validate it. if request.method == 'POST': # Create a ContactForm instance with the submitted data form = ContactForm(request.POST) # is_valid validates a form and returns True if it is valid and # False if it is invalid. if form.is_valid(): # The form is valid and you could save it to a database # by creating a model object and populating the # data from the form object, but here we are just # rendering a success template page. cd = form.cleaned_data send_mail(cd['subject'], cd['message'], cd.get('email','*****@*****.**'), ['*****@*****.**'], fail_silently=False, ) return render(request, 'contact_form/success.html') # This means that the request is a GET request. So we need to # create an instance of the ContactForm class and render it in # the template else: form = ContactForm() # Render the contact form template with a ContactForm instance. If the # form was submitted and the data found to be invalid, the template will # be rendered with the entered data and error messages. Otherwise an empty # form will be rendered. Check the comments in the contact_form.html template # to understand how this is done. return render(request, 'contact_form/contact_form.html', {'form':form})
def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): sender_name = request.POST.get('name') sender_email = request.POST.get('email') subject = request.POST.get('subject') message = request.POST.get('message') email = EmailMessage( 'Message From Website.', message, sender_email, [ '*****@*****.**', '*****@*****.**', '*****@*****.**' ], headers={'Reply-To': sender_email}) email.send() # if sender_name and sender_email and subject and message: # try: # send_mail(subject, message, sender_email, ['*****@*****.**'], # fail_silently=False, # ) # except BadHeaderError: # return HttpResponse("Bad Header") return render(request, 'contact_form/mail_received.html', {}) form = ContactForm() return render(request, 'contact_form/contact_form.html', {'form': form})
def contact(request): c = {} c.update(csrf(request)) contactFormSet = modelformset_factory(Contact) contactCategory = list(ContactCategory.objects.filter(is_active=True)[:1]) if contactCategory: contactCategory = contactCategory[0] c.update({'contactCatetory': contactCategory}) if request.method == 'POST': contact = ContactForm(request.POST) if contact.is_valid(): contact = contact.save() current_site = Site.objects.get_current() subject = Template(contactCategory.msg_subject).render(Context({'site': current_site})) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) message = Template(contactCategory.msg_body).render(Context( {'contact': contact, 'message': contact.message, 'site': current_site})); # if contactCategory.msg_html_body: # message = Template(contactCategory.msg_html_body).render(Context( # {'contact': contact.name, # 'email': contact.email, # 'message': contact.message, # 'site': current_site })); send_html_mail(subject, message, message, settings.DEFAULT_FROM_EMAIL, [email.strip() for email in contactCategory.recipients.split(',')]) # send mail to contact person to inform them the email has been sent reply_subject = Template(contactCategory.reply_subject).render(Context({})) reply_message = Template(contactCategory.reply_body).render(Context({'contact': contact.name})) send_html_mail(reply_subject, reply_message, reply_message, settings.DEFAULT_FROM_EMAIL, [contact.email]) if request.is_ajax(): return HttpResponse(json.dumps({'success': True}), mimetype='application/json') else: return render(request, 'contact_form/message_sent.html') else: return HttpResponse(json.dumps({'success': False, 'errors': contact.errors}), mimetype='application/json') else: storage = messages.get_messages(request) storage.used = False c['contact'] = ContactForm() return render(request, "contact_form/contact.html", c)
def test_invalid_form(self): data = dict( sender_name='test', sender_email='*****@*****.**', subject='', message='' ) form = ContactForm(data=data) self.assertFalse(form.is_valid())
def test_valid_form(self): data = dict( sender_name='test', sender_email='*****@*****.**', subject=self.subject_foo.id, message='test message from user foo', captcha='', ) form = ContactForm(data=data) self.assertTrue(form.is_valid())
def test_valid_form(self): data = dict( sender_name='test', sender_email='*****@*****.**', subject=self.subject_foo.id, message='test message from user foo', captcha='', ) form = ContactForm(data=data) self.assertTrue(form.is_valid())
def contact_form(request): if request.method == "POST": form = ContactForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Your request submitted successfully') else: messages.error(request, 'Please fix the errors and re-submit') else: form = ContactForm() return render(request, "contact-form.html", {"form": form})
def contact(request): if request.method == 'POST': form = ContactForm(request.POST, request.FILES, request=request) if form.is_valid(): form.save() return HttpResponseRedirect('%s?success' % request.path) else: form = ContactForm(request=request) return render_to_response('contact_form/contact_form.html', { 'form': form, 'success': 'success' in request.GET, }, context_instance=RequestContext(request))
def test_no_sites(self): """ Sites integration works with or without installed contrib.sites. """ with self.modify_settings( INSTALLED_APPS={"remove": ["django.contrib.sites"]}): form = ContactForm(request=self.request(), data=self.valid_data) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox))
def test_send(self): """ Valid form can and does in fact send email. """ form = ContactForm(request=self.request(), data=self.valid_data) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertTrue(self.valid_data["body"] in message.body) self.assertEqual(settings.DEFAULT_FROM_EMAIL, message.from_email) self.assertEqual(form.recipient_list, message.recipients())
def faq(request): questions = Question.objects.active() form = ContactForm(request=request) # form_class = form if request.method == 'POST': form = ContactForm(data=request.POST, files=request.FILES, request=request) if form.is_valid(): form.save() messages.info(request, _("New question succesfully sent."), fail_silently=True) return HttpResponseRedirect(reverse('faq')) template = "faq.html" data = {'items': questions, 'form': form, 'section': 'faq',} return render_to_response(template, data, context_instance=RequestContext(request))
def test_no_sites(self): """ Sites integration works with or without installed contrib.sites. """ with self.modify_settings( INSTALLED_APPS={ 'remove': ['django.contrib.sites'], }): form = ContactForm(request=self.request(), data=self.valid_data) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox))
def test_recipient_list(self): """ Passing recipient_list when instantiating ContactForm properly overrides the list of recipients. """ recipient_list = ["*****@*****.**"] form = ContactForm(request=self.request(), data=self.valid_data, recipient_list=recipient_list) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertEqual(recipient_list, message.recipients())
def test_recipient_list(self): """ Passing recipient_list when instantiating ContactForm properly overrides the list of recipients. """ recipient_list = ['*****@*****.**'] form = ContactForm(request=self.request(), data=self.valid_data, recipient_list=recipient_list) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertEqual(recipient_list, message.recipients())
def test_send(self): """ Valid form can and does in fact send email. """ form = ContactForm(request=self.request(), data=self.valid_data) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertTrue(self.valid_data['body'] in message.body) self.assertEqual(settings.DEFAULT_FROM_EMAIL, message.from_email) self.assertEqual(form.recipient_list, message.recipients())
def test_no_sites(self): """ Sites integration works with or without installed contrib.sites. """ old_installed = Site._meta.installed Site._meta.installed = False request = RequestFactory().request() data = {'name': 'Test', 'email': '*****@*****.**', 'body': 'Test message'} form = ContactForm(request=request, data=data) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox)) Site._meta.installed = old_installed
def test_send(self): """ Valid form can and does in fact send email. """ request = RequestFactory().request() data = {'name': 'Test', 'email': '*****@*****.**', 'body': 'Test message'} form = ContactForm(request=request, data=data) self.assertTrue(form.is_valid()) form.save() self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertEqual([data['email']], message.recipients()) self.assertTrue(data['body'] in message.body) self.assertEqual(settings.DEFAULT_FROM_EMAIL, message.from_email)