Reputation: 321
I'm trying to make Order registration in my shop app, and everything work when I'm trying to make and save Order in my panel admin but problem is with ordering on page, form which I made dont want to show up on page
order.html
{%extends 'shop/base.html'%}
{%load staticfiles%}
{%block title%}
Order
{%endblock%}
{% block content %}
<form class= 'form_order' method="post">
Zamówienie:
{% csrf_token %}
{{ form }}
<input type="submit" value="złóż zamówienie">
</form>
{% endblock %}
view.py
from django.shortcuts import render
from .forms import CreateOrderForm
from .models import OrderItem
from cart.cart import Cart
def Order_view(request):
cart=Cart(request)
if request.method== 'POST':
form=CreateOrderForm(request.POST)
if form.is_valid:
order= form.save()
for item in cart:
OrderItem.objects.create(order=order,
product=item['product'],
price=item['price'],
quantity=item['quantity'] )
cart.clear()
return render(request, 'order/created_order.html', {order:'order'})
else:
form=CreateOrderForm()
return render(request, 'order/order.html', {cart:'cart', form: 'form' })
forms.py
from django.forms import ModelForm
from .models import Order
class CreateOrderForm(ModelForm):
class Meta:
model=Order
fields=['firstname', 'lastname', 'address', 'postal_code', 'city']
Upvotes: 0
Views: 44
Reputation: 431
You are passing the context in a wrong way, you should write 'key': value, instead of value: 'key'.
context = {
'cart': cart,
'form': form
}
return render(request, 'order/order.html', context)
Upvotes: 2