35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from django.shortcuts import render, redirect, get_object_or_404
|
|
from .models import OrderItem, Order
|
|
from .forms import OrderCreateForm
|
|
from cart.cart import Cart
|
|
from django.conf import settings
|
|
from decimal import Decimal
|
|
|
|
from .utils import send_invoice_via_email
|
|
|
|
def order_create(request):
|
|
cart = Cart(request)
|
|
if request.method == 'POST':
|
|
form = OrderCreateForm(request.POST)
|
|
if form.is_valid():
|
|
order = form.save(commit=False) # добавил commit=False
|
|
order.save()
|
|
for item in cart:
|
|
OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity'])
|
|
cart.clear()
|
|
|
|
# Генерация и отправка PDF счета-фактуры
|
|
send_invoice_via_email(order.email, order) # Исправлено на order.email
|
|
|
|
return redirect('orders:order_created', order_id=order.id)
|
|
else:
|
|
form = OrderCreateForm()
|
|
return render(request, 'orders/order/create.html', {'cart': cart, 'form': form})
|
|
|
|
def order_created(request, order_id):
|
|
order = get_object_or_404(Order, id=order_id)
|
|
return render(request, 'orders/order/created.html', {'order': order})
|
|
|
|
|
|
|