• 1400/02/08

سبد خرید ایجاد نمیشه :

@login_required
def add_user_order(request):
    new_order_form = NewOrderForm(request.POST or None)

    if new_order_form.is_valid():
        order = Order.objects.filter(owner_id=request.user.id, is_paid=False).first()
        if order is None:
            order = Order.objects.create(owner_id=request.user.id, is_paid=False)

        product_id = new_order_form.cleaned_data.get('productId')
        count = new_order_form.cleaned_data.get('count')
        if count < 0:
            count = 1
        product = Product.objects.get_by_id(product_id=product_id)
        order.orderdetail_set.create(product_id=product.id, price=product.price, count=count)

        return redirect(f'/products-list/{product.id}/{product.title.replace(" ", "-")}')

    return redirect('/')

و قسمت فرم :

<span>
 <form method="post" action="/add-user-order">
    {% csrf_token %}
    {{ new_order_form.product_id }}
    <label>تعداد :</label>
    {{ new_order_form.count }}
	<button type="submit" class="btn btn-fefault cart">
	<i class="fa fa-shopping-cart"></i>
	افـزودن به سبـد خریـد
	 </button>
    </form>
	</span>

این هم قسمت detail view :

def product_detail(request, *args, **kwargs):
    product_id = kwargs['productId']

    new_order_form = NewOrderForm(request.POST, initial={'productId': product_id})
    product = Product.objects.get_by_id(product_id)
    if product is None or not product.active:
        raise Http404('محصول مورد نظر یافت نشد!')

    related_products = Product.objects.all().filter(category__product=product).distinct()
    grouped_related_products = list(my_grouper(3, related_products))

    galleries = ProductGallery.objects.filter(product_id=product_id)
    grouped_galleries = list(my_grouper(3, galleries))

    context = {
        'product': product,
        'galleries': grouped_galleries,
        'related_products': grouped_related_products,
        'new_order_form': new_order_form
    }

    # tag = Tag.objects.first()
    # print(tag.products.all())
    # print(product.tag_set.all())

    return render(request, 'products/product_detail.html', context)

در ضمن قسمت مدل مشکلی نیست چون توی پنل ادمین نشون داده میشن

  • 1400/02/08
  • ساعت 18:59

سلام وقت بخیر

action رو از فرمتون پاک کنید و مجدد تست کنید 

اگر مشکل برطرف نشد قسمت افزودن به سبد خرید رو خط به خط دیباگ کنید ببینید کدوم بخش درست انجام نمیشه تا مشکل رو به راحتی پیدا و حل کنید


logo-samandehi