from django.views import generic class IndexView(generic.ListView): template_name = 'lw-index-noslider.html' # 默认加载该模板文件 context_object_name = "articles" # 是数据库搜索出来的结果存放的变量名字,用于模板循环显示 paginate_by = paginate_by # 设置分页中每一页的记录数目 model = Article # 定义从哪份model中查询 def get_queryset(self): """Return the last five published questions.""" req_get_dict = self.request.GET.dict() if req_get_dict: # 记录 get 请求参数 logger.info(req_get_dict) req_get_dict_ordering = req_get_dict.get("ordering", None) if req_get_dict_ordering: if req_get_dict_ordering == "view": self.template_name = "index_view.html" # 指定要渲染的模板 articles = cache.get("article_views_rank") if not articles: # article_views_rank = Article.objects.order_by("-num_views") # 旧浏览量 articles = ArticleViewPage.objects.order_by("-view_page") cache.set("article_views_rank", articles, CACHE_TIMEOUT_1H) self.ordering = "view" elif req_get_dict_ordering == "-view": self.template_name = "index_view.html" # 指定要渲染的模板 articles = cache.get("article_views_rank_reverse") if not articles: # article_views_rank = Article.objects.order_by("-num_views") # 旧浏览量 articles = ArticleViewPage.objects.order_by("view_page") cache.set("article_views_rank_reverse", articles, CACHE_TIMEOUT_1H) self.ordering = "-view" else: articles = cache.get("articles_top") if not articles: articles = Article.objects.filter(show_status=True).order_by('-is_top', '-time_created') cache.set("articles_top", articles, CACHE_TIMEOUT_1H) self.ordering = "ctime_top" eles: articles = cache.get("articles_top") if not articles: articles = Article.objects.filter(show_status=True).order_by('-is_top', '-time_created') cache.set("articles_top", articles, CACHE_TIMEOUT_1H) self.ordering = "ctime_top" return articles
Zhuoyuebiji ( 广东·深圳 )
🚩成长的时候,能帮有需要的你
我是 卓越笔记,软件测试工作者,热爱互联网,喜欢琢磨,遇到问题就一定要找到答案。我的博客主要记录学习中遇到的知识点和遇到的问题及问题的解决方法。欢迎同样热爱互联网的小伙伴们交换友链,一起探索互联网的世界 😊
为向您提供更好的服务,我们使用 Cookies。更多相关信息请查阅我们的 隐私政策 和 免责声明