Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django电子商务:购物车项目迭代未推送到db_Python_Django_Shopping Cart - Fatal编程技术网

Python Django电子商务:购物车项目迭代未推送到db

Python Django电子商务:购物车项目迭代未推送到db,python,django,shopping-cart,Python,Django,Shopping Cart,我的订单应用程序中有以下型号: class Order(models.Model): # customer info first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) class OrderItem(models.Model): order = models.ForeignKey(Order, related_name='items'

我的订单应用程序中有以下型号:

class Order(models.Model):  
    # customer info
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
class OrderItem(models.Model):
    order = models.ForeignKey(Order, related_name='items', on_delete=models.CASCADE)
    product = models.ForeignKey(Product, related_name='order_items', on_delete=models.CASCADE)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    quantity = models.PositiveIntegerField(default=1)
我有以下创建订单视图:

def create_order(request):
    cart = Cart(request)
    if request.method == 'POST':
        form = CreateNewOrderForm(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()
     else:
         form = CreateNewOrderForm()
问题

在创建新订单时,如果我的购物车包含多个产品,我只能在我的OrderItem中看到1个(第一个)产品

有没有关于如何纠正这种情况的建议? 或
在哪里查找?

这是行中的标识,cart.clear(),它应该不在“for”循环中

试试这个

for item in cart:
            OrderItem.objects.create(order=order, product=item['product'], 
            price=item['price'], quantity=item['quantity'])
cart.clear()

也许这条线在这里
cart.clear()
-可能想将其从我假设的for循环中移出。确实如此。在第一次迭代之后,我似乎正在清理我的购物车。谢谢