Kuracha
Kuracha

Reputation: 321

I don't know why form doesn't show up on my page

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

Answers (1)

Juanmi Gabarron
Juanmi Gabarron

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

Related Questions