想用Django开发一个个人博客,参考了网上的一些文章和Django文档,目前做到日期归档这个功能,以下是有问题的View
class 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又确实是一样的,理论上应该可以得到我想要的文章。
不知道问题描述清楚了没有= =|||,我现在也没有头绪,就想知道从经验上来说,这个问题应该怎么去找解决办法……
慕尼黑6563452
相关分类