如何通过在 django 中过滤两个不同的日期来获取数据?
Posted
技术标签:
【中文标题】如何通过在 django 中过滤两个不同的日期来获取数据?【英文标题】:How to get data by filtering with two different dates in django? 【发布时间】:2021-01-27 16:58:42 【问题描述】:这是我的模型;
class FundData(models.Model):
fund = models.ForeignKey(Fund, on_delete=models.CASCADE, related_name="data_of_fund", verbose_name="Fund")
date = models.DateField(auto_now_add=False, editable=True, blank=False, verbose_name="Date")
price = models.FloatField(max_length=15, blank=False, verbose_name="Fund Price")
这是我要选择日期的前端;
<div class="col-12 d-flex align-items-end">
<div>
<label>Starting Date</label>
<input id="startDatePicker" type="text" class="form-control datepicker" autocomplete="off">
</div>
<div class="mx-2">
<label>Ending Date</label>
<input id="endDatePicker" type="text" class="form-control datepicker" autocomplete="off">
</div>
<a onclick="getFundReturnsByDate()" class="btn btn-info" href="javascript:void(0);"> Show<i
class="fas fa-caret-right"></i></a>
</div>
我想要的是用户应该选择 2 个日期并将所选日期的数据放在一个表格中。 任何帮助表示赞赏,谢谢!
【问题讨论】:
【参考方案1】:您可以使用 django range 过滤器。
FundData.objects.filter(date__range=[start_date, end_date])
【讨论】:
如何将 datepicker 的值放入 start_date & end_date? @turkaybeyazay,你最好阅读 Django 文档。请阅读表格相关部分。 我设法获得了 datepicker 的值,但现在我收到一个错误,名为错误格式的日期格式,知道吗?【参考方案2】:使用
FundData.objects.filter(date__range=["2011-01-01", "2011-01-31"])
或者,如果您只是想按月过滤:
FundData.objects.filter(date__year='2011',
date__month='01')
【讨论】:
以上是关于如何通过在 django 中过滤两个不同的日期来获取数据?的主要内容,如果未能解决你的问题,请参考以下文章