加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在datetime字段上过滤对象?

发布时间:2020-12-20 11:44:03 所属栏目:Python 来源:网络整理
导读:我有以下型号: class Announcement(models.Model): name = models.CharField(max_length=500) content = models.CharField(max_length=1000) is_active = models.BooleanField(default=False) date_start = models.DateTimeField() date_end = models.DateT
我有以下型号:

class Announcement(models.Model):
    name = models.CharField(max_length=500)
    content = models.CharField(max_length=1000)
    is_active = models.BooleanField(default=False)
    date_start = models.DateTimeField()
    date_end = models.DateTimeField()

    def __str__(self):
        return self.name

我可以过滤is_active字段上的对象,如:

def announcements(request):
    announcements = Announcement.objects.all().filter(
        is_active = True
    )
    return HttpResponse(
        serializers.serialize("json",announcements))

这很好用.但是当我想基于date_start字段过滤它们时,如下所示:

def announcements(request):
    announcements = Announcement.objects.all().filter(
        date_start >= datetime.now()
    )
    return HttpResponse(
        serializers.serialize("json",announcements))

我得到全局名称’date_start’没有定义错误.

解决方法

您需要使用 queryset过滤器查找,__gte (greater than or equal):

announcements = Announcement.objects.all().filter(date_start__gte = datetime.now())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读