Python 如何筛选datetime字段上的对象?
我有以下型号:Python 如何筛选datetime字段上的对象?,python,django,python-2.7,Python,Django,Python 2.7,我有以下型号: 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.Dat
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
我可以在是否处于活动状态
字段中过滤对象,如:
def announcements(request):
announcements = Announcement.objects.all().filter(
is_active = True
)
return HttpResponse(
serializers.serialize("json", announcements))
这个很好用。但是当我想根据date\u start
字段过滤它们时,如下所示:
def announcements(request):
announcements = Announcement.objects.all().filter(
date_start >= datetime.now()
)
return HttpResponse(
serializers.serialize("json", announcements))
我得到的全局名称“date\u start”未定义
错误 您需要使用过滤器查找:
此语法错误:
announcements = Announcement.objects.all().filter(date_start >= datetime.now())
filter
需要Python关键字参数。所以实际上你可以:
announcements = Announcement.objects.all().filter(date_start__gte=datetime.now())
关于这方面的更多信息。在使用filter()之前,不需要调用.all(),因为filter()被代理到queryset。
announcements = Announcement.objects.all().filter(date_start__gte=datetime.now())