【问题标题】:How to get data by filtering with two different dates in django?如何通过在 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 个日期并将所选日期的数据放在一个表格中。 任何帮助表示赞赏,谢谢!

【问题讨论】:

    标签: javascript python jquery json django


    【解决方案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')
    

    【讨论】:

      猜你喜欢
      • 2019-06-06
      • 2021-09-03
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      相关资源
      最近更新 更多