django-每天获得第一张记录

django-每天获得第一张记录,django,django-queryset,Django,Django Queryset,我有一个销售模型: 售货员 销售的产品 日期 我想为每个日期和每个卖家获得第一笔销售,我如何才能做到这一点? 谢谢考虑到问题中发布的模型,Django ORM查询将是: first_sale = Sales.objects.order_by("Saler", "Date").distinct("Saler") 未测试,但我会尝试(我假设销售日期字段名为sale\u date,类型为Datetime): filter将搜索限制在给

我有一个销售模型:

  • 售货员
  • 销售的产品
  • 日期
我想为每个日期和每个卖家获得第一笔销售,我如何才能做到这一点?
谢谢

考虑到问题中发布的模型,Django ORM查询将是:

first_sale = Sales.objects.order_by("Saler", "Date").distinct("Saler")

未测试,但我会尝试(我假设销售日期字段名为
sale\u date
,类型为Datetime):

  • filter
    将搜索限制在给定的卖家(
    卖家
    )和给定的日期(请参见
    \u日期
    表达式:)
  • order\u by
    first
    将为您提供当天的第一天

是否给出第一条记录?我正在考虑这个问题,但在文档中找不到任何东西是的,你可以继续测试它。打印并检查返回的查询集。我有一个类似的用例(考虑到问题中的相同模型),相反,我必须在每个日期获取每个卖家的最新记录。所以我这样做了:-
latest\u sale=Sales.objects.order\u by(“Saler”,“Date”).distinct(“Saler”)
谢谢,但是有了这个解决方案,我必须在每个日期和每个Saler上循环?我有大约250次约会和50次销售我不知道你到底想要达到什么,你没有给出足够的细节。但基本上,是的。如果您想要的是销售人员和日期的某种仪表板,那么您可能应该在数据库中创建一些表来保存统计信息,并每天填写一次。或者直接在数据库中创建视图。在我看来,Django ORM并不是执行此类查询的最简单方法。
first_sale = Sales.objects.filter(saler=the_saler, sale_date__date=datetime.date(2021, 05, 19)).order_by('sale_date').first()