为了账号安全,请及时绑定邮箱和手机立即绑定

Django内使用filter过滤时间,只认年份不认月份是怎么回事?

Django内使用filter过滤时间,只认年份不认月份是怎么回事?

小胖纸 2017-04-12 14:02:31
想用Django开发一个个人博客,参考了网上的一些文章和Django文档,目前做到日期归档这个功能,以下是有问题的Viewclass ArchiveView(ListView):    template_name = "blog.html"    context_object_name = "articles"    def get_queryset(self):        # 接收从url传递的year和month参数,转为int类型        year = int(self.kwargs['year'])        month = int(self.kwargs['month'])        # 按照year和month过滤文章        article_list = ArticleModel.manager.filter(status='p', add_time__year=year, add_time__month=month).order_by('-add_time')        for article in article_list:            pdb.set_trace()            article.content= markdown2.markdown(article.content, extras=['fenced-code-blocks'], )        return article_list    def get_context_data(self, **kwargs):        return super(ArchiveView, self).get_context_data(**kwargs)用pdb试了很久,最后发现问题出在这一句:article_list = ArticleModel.manager.filter(status='p', add_time__year=year, add_time__month=month).order_by('-add_time')其中add_time__month=month无法过滤到正确月份,导致结果的QuerySet为空;pdb调试上面这个View中的month变量和article.add_time.month又确实是一样的,理论上应该可以得到我想要的文章。注:status='p'和add_time__year=year都可以成功地找到符合条件的文章;也试过用Q,结果是一样的。不知道问题描述清楚了没有= =|||,我现在也没有头绪,就想知道从经验上来说,这个问题应该怎么去找解决办法……
查看完整描述

1 回答

?
慕尼黑6563452

TA贡献1条经验 获得超0个赞

django setting 调时区

查看完整回答
反对 回复 2018-06-29
  • 1 回答
  • 0 关注
  • 3354 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信