Django日月事件日期查询

2023-12-09

我有一个 Django 模型,如下所示:

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

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

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

我已经尝试了所有常规日期查询类型,但它们似乎都需要一年,并且缺乏迭代all多年来,我不明白这是如何做到的。


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

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

最有可能的是scans您的数据库表使用 SQL 运算符,例如MONTH(date) and DAY(date)或一些等效的查找

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

以下是 Django 的一些文档:https://docs.djangoproject.com/en/dev/ref/models/querysets/#month

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django日月事件日期查询 的相关文章

随机推荐