products
我的数据库中有表格,并且带有totalprice
和的两列saleprice
,当我从后端添加产品时,我同时提交了两个价格。我想计算产品的最高报价(要计算报价逻辑将是这样的offer=totalprice/saleprice
),我想在我的网站首页上显示这些产品,但是我不知道如何在Django中做到。请让我指导如何在views.py
文件中添加逻辑。
这是我的views.py文件...
def home(request):
product= Product.objects.filter(featured=True).order_by('-created_at')[0:8]
subc=Product.objects.filter(discount=30).order_by('-created_at')
return render(request, 'mainpage/index.html',
{'product':product,'subc':subc})
这是我的models.py文件
class Product(models.Model):
name=models.CharField(max_length=225)
slug=models.SlugField(max_length=225, unique=True)
subcategory=models.ForeignKey('SubCategory', related_name='prosubcat', on_delete=models.CASCADE, blank=True, null=True)
totalprice=models.IntegerField()
saleprice = models.IntegerField()
title=models.CharField(max_length=225)
description = models.TextField()
overview = models.TextField(null=True)
featured = models.BooleanField(null=True)
trending=models.BooleanField(null=True)
image= models.ImageField(blank=True)
tags = TaggableManager()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
您可以像这样在查询集中使用注释。
from django.db.models import F
def home(request):
products= Product.objects.filter(featured=True).annotate(offer=F('totalprice')-F('saleprice'))
现在,您可以在模板中执行以下操作:
{% for product in products %}
Product Offer:{{ product.offer }}
{% endfor %}
编辑:要计算百分比,请尝试此。
Product.objects.filter(featured=True).annotate(offer=((F('totalprice')-F('saleprice'))/F('totalprice'))*100)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句