【问题标题】:Django day and month event date queryDjango 日月事件日期查询
【发布时间】:2015-09-22 05:04:24
【问题描述】:

我有一个看起来像这样的 django 模型:

class Event(models.Model):
    name = model.CharField(...etc...)
    date = model.DateField(...etc...)

我需要的是一种获取给定日期和月份的所有事件的方法 - 很像“在这一天”页面。

def on_this_day(self,day,month):
    reutrn Events.filter(????)

我已经尝试了所有常规日期查询类型,但它们似乎都需要一年,而且没有迭代所有年,我不知道如何做到这一点。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    您可以通过指定日期和月份来进行这样的查询:

    def on_this_day(day, month):
        return Event.objects.filter(date__day=day, date__month=month)
    

    它很可能扫描您的数据库表使用 SQL 运算符,如 MONTH(date)DAY(date) 或一些等效的查找

    如果您添加和索引Event.dayEvent.month,您可能会获得更好的查询性能(如果Event.date 在内部存储为数据库中的int,则它不太适合您的(day, month) 查询)

    这里有一些来自 Django 的文档:https://docs.djangoproject.com/en/dev/ref/models/querysets/#month

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 2017-03-23
      • 2019-05-28
      • 2010-10-18
      • 1970-01-01
      • 2012-10-14
      • 2014-12-17
      相关资源
      最近更新 更多