Python 如何使购物车中的商品在附有订单号时不显示
我有一个项目正在进行中,在项目中可以将项目添加到购物车。签出时,将创建一个订单,订单号绑定到该会话中购物车中的所有项目。 如果在创建订单并查看购物车后向购物车添加了更多项目,则会显示附加了订单号的项目以及添加的新项目 如何使附加了订单号的项目不显示在购物车中,因为在其签出时已附加了订单号 这是我的观点Python 如何使购物车中的商品在附有订单号时不显示,python,django-models,django-views,Python,Django Models,Django Views,我有一个项目正在进行中,在项目中可以将项目添加到购物车。签出时,将创建一个订单,订单号绑定到该会话中购物车中的所有项目。 如果在创建订单并查看购物车后向购物车添加了更多项目,则会显示附加了订单号的项目以及添加的新项目 如何使附加了订单号的项目不显示在购物车中,因为在其签出时已附加了订单号 这是我的观点 @login_required() def cart(request): request_user = request.user items = Cart.objects.fil
@login_required()
def cart(request):
request_user = request.user
items = Cart.objects.filter(client=request_user)
if request.method == "POST":
print "rp ", request.POST
docfile = request.POST['docfile']
print "Docfile", docfile
description = request.POST['description']
print "Description is ", description
price = request.POST['price']
print "Price is ", price
quantity = request.POST['quantity']
print "Quantity is ", quantity
client = request.user
print "Client is ", client
item, created = Cart.objects.get_or_create(client=client, description=description, price=price, quantity=quantity)
item.save()
return render(request, 'selly/cart.html', {'items': items})
@login_required
def order(request):
order_number = create_id()
print "ORDER NUMBER", order_number
request_user = request.user
all_items = Cart.objects.filter(client=request_user, ordered=False)
print "ALL ITEM", all_items
if request.method == "POST":
client = request.user
# print "Client is ", client
location=request.user.signup.country
# print "LOCATION ", location
item, created = Order.objects.get_or_create(order_number=order_number, client=client, location=location)
item.save()
order = Order.objects.filter(order_number = order_number)
print "ORDER", order
all_items.update(ordered = True, order = order[0])
my_order = Order.objects.filter(client=request_user) #Populate client's Order to template
return render(request, "selly/order.html", {'my_order': my_order, 'order': order})
这是我的模特
class Cart(models.Model):
client = models.ForeignKey(User, null=True)
description = models.CharField(max_length = 100)
price = models.DecimalField(max_digits=10, decimal_places=2)
quantity = models.PositiveIntegerField()
ordered = models.BooleanField(default=False)
order = models.ForeignKey('Order', blank=True, null=True)
created_on = models.DateTimeField(auto_now_add = True)
def __str__(self):
return self.description
def total(self):
return self.price * self.quantity
class Order(models.Model):
client = models.ForeignKey(User, null=True)
order_number = models.CharField(max_length = 12)
location = models.CharField(max_length=12)
payment_status = models.CharField(max_length=20, choices = PAYMENT_STATUS, default='Pending')
shipment_status = models.CharField(max_length=20, choices = SHIPMENT_STATUS, default='Pending')
created_on = models.DateTimeField(auto_now_add = True)
def __str__(self):
return self.order_number
我会将它们保存并显示在购物车中,直到结帐完成(支付),然后在它们成为实际订单后将其从购物车中删除。我打算这样做,以便用户可以拥有不同的订单