根据日期计算 Django 数据查询
Posted
技术标签:
【中文标题】根据日期计算 Django 数据查询【英文标题】:Calculate Django Data query according to date 【发布时间】:2017-10-07 21:35:06 【问题描述】:这是我的 models.py 文件。
class CustomerInfo(models.Model):
customer_name=models.CharField('Customer Name', max_length=50)
customer_mobile_no = models.CharField('Mobile No', null=True, blank=True,max_length=12)
customer_price=models.IntegerField('Customer Price')
customer_product_warrenty = models.CharField('Product Warrenty',null=True, blank=True,max_length=10)
customer_sell_date = models.DateTimeField('date-published')
customer_product_id=models.CharField('Product ID',max_length=150,null=True, blank=True)
customer_product_name=models.CharField('Product Name', max_length=50)
def __str__(self):
return self.customer_name
当我按日期查找数据查询信息时,我想仅按选定日期计算“customer_price”。然后我将显示到我的 html 页面。 这是我按日期的搜索查询。
这是我的 views.py 文件
def dailyReport(request):
if request.method =='POST':
datelist=request.POST['datewisesearch']
try:
customers = CustomerInfo.objects.filter(
customer_sell_date__day=datelist)
months=timezone.now().month
years = timezone.now().year
return render(request, 'shop/report.html', "customers": customers, "datelist": datelist, "months": months, "years": years)
except:
pass
return render(request,'shop/report.html', context=None)
这是html页面
% extends "shop/base.html" %
% block content_area %
<div class="col-lg-12">
<div class="daily_title">
<h2>Daily Report</h2>
</div>
<form action="% url 'shop:dailyReport' %" class="" method="POST">
% csrf_token %
<div class="form-group">
<label for="datewisesearch">Search Product:</label>
<input type="text" class="form-control" id="datewisesearch" name="datewisesearch">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
<div class="col-lg-12">
<br>
<hr>
<button type="button" class="btn btn-success">See Today Date is: datelist-months-years : Reports</button>
<br>
<hr>
<div class="table table-bordered">
<table class="table">
<thead>
<tr>
<th>No</th>
<th>Invoice ID</th>
<th>Name</th>
<th>Mobile</th>
<th>Product Name</th>
<th>Product ID</th>
<th>Warrenty</th>
<th>Customer Price</th>
</tr>
</thead>
% for x in customers %
<tbody>
<tr>
<td> forloop.counter </td>
<td>x.id</td>
<td><a href="% url "shop:customersProfile" x.id %">x.customer_name</a></td>
<td>x.customer_mobile_no</td>
<td>x.customer_product_name</td>
<td>x.customer_product_id</td>
<td>x.customer_product_warrenty Month</td>
<td>x.customer_price TK</td>
</tr>
</tbody>
% endfor %
<h2>Total Cost is:sum_price </h2>
</table>
</div>
</div>
% endblock content_area %
现在,计算我选择的日期内的所有“customer_price”,并在表格下方显示总价。
【问题讨论】:
使用聚合和求和函数:Model.objects.aggregate(Sum('field_name')) 如何显示我的 HTML 页面? 【参考方案1】:也许你想要sum聚合over-a-queryset
在存在行后的视图中添加 sum_price
from django.db.models import Sum
customers = CustomerInfo.objects.filter(customer_sell_date__day=datelist)
# Add next line
sum_price = customers.aggregate(sp=Sum('customer_price')).get('sp', 0)
# Don't foget to add sum_price to your context
【讨论】:
更新并添加详细信息到答案 我在 HTML 表格中显示了所有 customer_price 列表。现在我要计算总 customer_price 并在 HTML 表下穿鞋。 添加详情,请查看。 谢谢。它工作正常。但我必须知道它是如何工作的?你能告诉我它是如何工作的吗?以上是关于根据日期计算 Django 数据查询的主要内容,如果未能解决你的问题,请参考以下文章