在Django中从一个应用程序获取值到另一个应用程序

时间:2017-10-27 14:36:11

标签: python django

我正致力于创建购物车。我还在学习阶段。我需要知道如何将商店的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())

我使用了来自https://github.com/twtrubiks/django-shop-tutorial

的代码

1 个答案:

答案 0 :(得分:0)

首先,您需要创建Product模型的实例。这是通过像任何其他Python类一样实例化它(参见documentation

product = Product(100,10) #this is an example

然后,您可以使用内置的add方法将商品添加到购物车:

cart.add(product)

注意

您还需要像对待产品一样实例化购物车。然后,您可以访问Cart中处理计算总价的其他方法。 。

只是为了您的理解,您在询问如何在Django 中从一个应用程序获取值到另一个应用程序。那么,在这种情况下,由于您通过product参数将产品对象传递到购物车,因此您可以访问其属性。