我正致力于创建购物车。我还在学习阶段。我需要知道如何将商店的models.py中的值传递给cart.py./ / p>
店/ models.py
class Product(models.Model):
delivery_price = models.DecimalField(max_digits=10, decimal_places=0,default=0)
support_price = models.DecimalField(max_digits=10, decimal_places=0,default=0)
cart / cart.py:我认为这是我需要获取delivery_price和support_price的文件。我不知道如何获得这两个值。我想添加这些价格并将其乘以数量(类似于Product.delivery_price + Product.support_price * item.quantity
- >不确定这样做的方式)这个流程如何运作?如果有人帮助我理解,那就太好了。
class Cart(object):
def __init__(self, request):
def add(self, product, quantity=1,update_quantity=False, support_req=False):
"""
Add a product to the cart or update its quantity.
"""
product_id = str(product.id)
if product_id not in self.cart:
self.cart[product_id] = {'quantity': 0,
'price': str(product.price)}
if update_quantity:
self.cart[product_id]['quantity'] = quantity
else:
self.cart[product_id]['quantity'] += quantity
self.save()
def __iter__(self):
"""
Iterate over the items in the cart and get the products
from the database.
"""
product_ids = self.cart.keys()
# get the product objects and add them to the cart
products = Product.objects.filter(id__in=product_ids)
for product in products:
self.cart[str(product.id)]['product'] = product
for item in self.cart.values():
item['price'] = Decimal(item['price'])
item['total_price'] = item['price'] * item['quantity']
yield item
def __len__(self):
"""
Count all items in the cart.
"""
return sum(item['quantity'] for item in self.cart.values())
def get_total_price(self):
return sum(Decimal(item['price']) * item['quantity'] for item in self.cart.values())
的代码
答案 0 :(得分:0)
首先,您需要创建Product模型的实例。这是通过像任何其他Python类一样实例化它(参见documentation)
product = Product(100,10) #this is an example
然后,您可以使用内置的add
方法将商品添加到购物车:
cart.add(product)
注意强>
您还需要像对待产品一样实例化购物车。然后,您可以访问Cart
中处理计算总价的其他方法。 。
只是为了您的理解,您在询问如何在Django 中从一个应用程序获取值到另一个应用程序。那么,在这种情况下,由于您通过product
参数将产品对象传递到购物车,因此您可以访问其属性。