我正在使用django在新闻网站上工作,我想允许用户通过日期
搜索文章这是文章模型
class Article(models.Model):
id=models.AutoField(primary_key=True)
title=models.CharField(max_length=100,null=False,blank=False)
category=models.ForeignKey(Category,null=False,blank=False)
date=models.DateTimeField(auto_now_add=True)
content = models.TextField(null=False, blank=False)
resume=models.CharField(null=False,blank=False,max_length=400)
现在我有两篇文章,其中包含以下日期(日期时间)
2018-05-21 11:12:03.868542
2018-05-22 19:02:12.885298
当我在django shell上运行它时
articles=Article.objects.filter(date__day=21,date__month=05,date__year=2018)
我得到一个空的查询集
答案 0 :(得分:0)
它可能与时区有关。可能是2018-05-21 11:12:03你所在的区域实际上是格林尼治标准时间2018-05-20 01:12:03。要检查Python如何解释您的时区,请在没有过滤器的情况下从数据库中读取文章对象,并将日和月写入控制台。然后,您将知道在过滤器中使用的内容。
答案 1 :(得分:0)
写
articles=Article.objects.filter(date__day=21,date__month=5,date__year=2018)
使用5代替05,在Python 3中,0之前的任何整数都是无效的整数。
答案 2 :(得分:0)
我已经使用包含过滤器解决了这个问题。
articles=Article.objects.filter(date__contains=datetime.date(2018,5,21))