@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)
در ضمن قسمت مدل مشکلی نیست چون توی پنل ادمین نشون داده میشن
سلام وقت بخیر
action رو از فرمتون پاک کنید و مجدد تست کنید
اگر مشکل برطرف نشد قسمت افزودن به سبد خرید رو خط به خط دیباگ کنید ببینید کدوم بخش درست انجام نمیشه تا مشکل رو به راحتی پیدا و حل کنید