【问题标题】:Django date.day queryset lookupDjango date.day 查询集查找
【发布时间】:2015-01-07 12:28:09
【问题描述】:

尝试根据 date.day 获取查询集中的一些对象

#Model

class Entry(models.Model):
    ...
    from = models.DateField(default=datetime.date.today())
    ...

#view

    day = 2
    entryes = Entry.objects.all()

    #works
    day_entryes = entryes.filter(from__day=day)

    #do not work
    day_entryes = entryes.filter(from__day__lte=day)

我收到以下错误:

Join on field 'from' not permitted. Did you misspell 'day' for the lookup type?

为什么它不起作用?

【问题讨论】:

    标签: django django-views django-queryset


    【解决方案1】:

    Django 不支持日期字段属性上的过滤方法,如 __lt__gt__in。有一张关于这个#6439的票。

    你可以使用extra做你想要的过滤器:

    day = 2
    Entry.objects.extra(where=["EXTRACT(day FROM from) <= %s"], params=[day])
    

    我已经用 MySQL 测试过上面的内容,其他 SQL 后端的语法可能不同。

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 2017-01-12
      • 2012-04-26
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多