Example #1
0
def create_order(req):
    if req.method != 'POST':
        return nl_render(req, 'pages/access_denied.html')

    p = dict(req.POST)
    cart = Cart(req)
    order = Order()
    order.first_name = p['first_name'][0]
    order.phone = p['phone_number'][0]
    order.city = p['city'][0]
    order.street = p['street'][0]
    order.building = p['building'][0]
    order.comment = p['comment'][0]

    last_order = Order.objects.all().order_by('-id')[0]
    if last_order:
        order.number = last_order.number + 1

    order.save()

    for item in cart:
        order.items.add(item.product)

    cart.check_out()

    subj = 'Получен заказ #%s на сумму %s' % (
        order.number,
        order.total_price(),
    )
    message = '''
        Поступил заказ #{number} на сумму {price}.
        ФИО: {name}
        Телефон: {phone}
        Адрес: {address}
        Комментарий: {comment}
    '''.format(number=order.number,
               price=order.total_price(),
               name=order.first_name[0],
               phone=order.phone[0],
               comment=order.comment,
               address=order.address())

    send_mail(subj,
              message,
              settings.DEFAULT_FROM_EMAIL, [settings.ADMIN_EMAIL],
              fail_silently=True)

    return nl_render(req, 'pages/order_success.html')