Example #1
0
def contact_form(request):
    success = None
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            # Getting clean fields
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            subject = form.cleaned_data['subject']
            message = form.cleaned_data['message']
            feedback_email = getattr(settings, 'FEEDBACK_EMAIL')
            user_ip = request.META['REMOTE_ADDR']
            recipients = [feedback_email]
            # Get current url of site
            site = request.scheme + '://' +\
                request.META['HTTP_HOST'] + request.path
            date = datetime.now().strftime("%d.%m.%Y в %H:%M")
            from_email = getattr(settings, 'FROM_EMAIL')
            # Forming message for send
            message = "{1} написал Вам через форму обратной связи с сайта {0}:\
            \n\n{2}\n\nДата: {3}\
            \nEmail отправителя: {4}\
            \nIP отправителя: {5}".format(site, name, message, date, email,
                                          user_ip)

            try:
                send_mail(subject, message, from_email, recipients)
            except BadHeaderError:
                raise form.ValidationError('Invalid header found!')
            else:
                success = True

            form = ContactForm()
    else:
        form = ContactForm()

    context_dict = {'form': form, 'success': success}

    return render(request, 'contact.html', context_dict)