# -*- coding: utf-8 -*- import json from django.http import HttpResponseBadRequest, HttpResponse from django.views.decorators.http import require_POST, require_GET from django.views.decorators.csrf import csrf_protect from django.template.loader import render_to_string from django.core.mail import send_mail from django.conf import settings from .models import ReqAvail from .forms import ReqAvailForm CALLBACK_SETTINGS = getattr(settings, 'CALLBACK_SETTINGS') @require_POST @csrf_protect def req_avail(request, id=None): """Отправить сообщение или обработать запрос наличия товара на складе - AJAX.""" if not request.is_ajax(): return HttpResponseBadRequest() if id: good = get_object_or_404(CatalogItem, pk=id) else: good = None form = ReqAvailForm(data=request.POST) if form.is_valid(): if request.user.is_authenticated(): user = request.user else: user = None req = ReqAvail.objects.create( name=form.cleaned_data['name'].strip(), phone=form.cleaned_data['phone'].strip(), user=user, #good=good, ) # отправить письма менеджерам subject = CALLBACK_SETTINGS['NEW_REQ_AVAIL_EMAIL_SUBJ'] sender = CALLBACK_SETTINGS['EMAIL_SENDER'] recipients = CALLBACK_SETTINGS['MANAGERS_EMAILS'] message = render_to_string('callback/req_avail_new.txt', {'req': req, }) send_mail(subject, message, sender, recipients) data = { 'success': form.is_valid(), # 'field_errors': form.errors, # ошибки полей 'form_errors': form.non_field_errors(), # ошибки формы } if form.is_valid(): data['message'] = { 'title': u'Сообщение', 'msg': u'Ваша Сообщение отправлено!
Скоро с Вами свяжется наш менеджер.', } return HttpResponse(json.dumps(data), mimetype='application/json')