首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义名称'get_total_discount_item_price‘

未定义名称'get_total_discount_item_price‘
EN

Stack Overflow用户
提问于 2021-01-30 22:48:20
回答 2查看 46关注 0票数 0

我想知道所有商品的总价。但是每当我尝试这样做的时候,这个错误就会弹出来。这是由于什么原因呢?即使我已经写好了,它也显示名称没有被定义,它应该正确地执行任务。

这是HTML代码:

代码语言:javascript
运行
复制
{% for object in orders %}
            <div class="row justify-content-start">
                <div class="col col-lg-5 col-md-6 mt-5 cart-wrap ftco-animate">
                    <div class="cart-total mb-3">
                        <h3>Cart Totals</h3>
                        <p class="d-flex">
                            <span>Subtotal</span>
                {% if object.get_total %}


                <span>  ${{ object.get_total }}</span>
                        </p>
               {% endif %}
                        <p class="d-flex">
                            <span>Delivery</span>
                            <span>$0.00</span>
                        </p>
                        <p class="d-flex">
                            <span>Discount</span>
                            <span>$3.00</span>
                        </p>
                        <hr>
                        <p class="d-flex total-price">
                            <span>Total</span>
                            <span>$17.60</span>
                        </p>
                    </div>
                    <p class="text-center"><a href="{% url 'core:checkout' %}" class="btn btn-primary py-3 px-4">Proceed to Checkout</a></p>
                </div>
            </div>
        {% endfor %}

这是models.py:

代码语言:javascript
运行
复制
class OrderItem(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    ordered = models.BooleanField(default=False)
    quantity = models.IntegerField(default=1)

    def __str__(self):
        return f"{self.quantity} of {self.item.title}"

    def get_total_item_price(self):
        return self.quantity * self.item.price

    def get_total_discount_item_price(self):
        return self.quantity * self.item.discount_price

    def get_final_price(self):
        if self.item.discount_price:
            return get_total_discount_item_price()
        return self.get_total_item_price()

class Order(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    items = models.ManyToManyField(OrderItem)
    start_date = models.DateTimeField(auto_now_add=True)
    ordered_date = models.DateTimeField()
    ordered = models.BooleanField(default=False)

    def __str__(self):
        return self.user.username

    def get_total(self):
        total = 0
        for order_item in self.items.all():
            total += order_item.get_final_price()
        return total

views.py:

代码语言:javascript
运行
复制
def cart(request):
    context = {'items': OrderItem.objects.all(), 'orders': Order.objects.all()}
    return render(request, 'ecommerceapp/cart.html', context)

谢谢你的帮助。我真的很感激!

EN

回答 2

Stack Overflow用户

发布于 2021-01-30 22:54:35

你忘了把"self“放在函数前面。请检查以下内容:

代码语言:javascript
运行
复制
def get_final_price(self):
    if self.item.discount_price:
        return self.get_total_discount_item_price()
    return self.get_total_item_price()
票数 2
EN

Stack Overflow用户

发布于 2021-01-30 22:57:20

附加自我。在get_total_discount_item_price()面前

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65969317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档