我想知道所有商品的总价。但是每当我尝试这样做的时候,这个错误就会弹出来。这是由于什么原因呢?即使我已经写好了,它也显示名称没有被定义,它应该正确地执行任务。
这是HTML代码:
{% 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:
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:
def cart(request):
context = {'items': OrderItem.objects.all(), 'orders': Order.objects.all()}
return render(request, 'ecommerceapp/cart.html', context)
谢谢你的帮助。我真的很感激!
发布于 2021-01-30 22:54:35
你忘了把"self“放在函数前面。请检查以下内容:
def get_final_price(self):
if self.item.discount_price:
return self.get_total_discount_item_price()
return self.get_total_item_price()
发布于 2021-01-30 22:57:20
附加自我。在get_total_discount_item_price()
面前
https://stackoverflow.com/questions/65969317
复制相似问题