老师点击新闻,进入展示出新闻列表

老师点击新闻,进入展示出新闻列表

{% extends 'base.html' %}
{% block title %}
   <title>新闻列表</title>
{% endblock %}
{% block container %}
   <!--主体-->
   <header class="wy-header">
     <div class="wy-header-icon-back"><span></span></div>
     <div class="wy-header-title">新闻列表</div>
   </header>
   <div class="weui-content">
     <div class="weui-cells wy-news-list">
       {% for item in page_data.object_list %}
       <a class="weui-cell weui-cell_access"
          href="{% url 'system:news_detail' item.pk %}">
         <div class="weui-cell__bd">
           <p>{{ item.title }}</p>
         </div>
         <div class="weui-cell__ft"></div>
       </a>
       {% endfor %}
     </div>
     <div class="weui-footer">
         <p class="weui-footer__links">
             {% if page_data.has_previous %}
                 <a class="weui-footer__link" href="{% url 'system:news_list' %}?page={{ page_data.previous_page_number }}">上一页</a>
             {% else %}
                 <a class="weui-footer__link" href="javascript:;" onclick="window.alert('没有上一页了')">上一页</a>
             {% endif %}
             {%  if page_data.has_next %}
                 <a class="weui-footer__link" href="{% url 'system:news_list' %}?page={{ page_data.next_page_number }}">下一页</a>
             {% else %}
                 <a class="weui-footer__link" href="javascript:;" onclick="window.alert('没有下一页了')">下一页</a>
             {% endif %}
         </p>
         <p class="weui-footer__text">当前第{{ page_data.number }}页,总共有{{ page_data.paginator.num_pages }}页</p>
     </div>
   </div>
{% endblock %}
{% block footer %}
   <script type="text/javascript" src="js/jquery.Spinner.js"></script>
{% endblock %}


from django.core.paginator import Paginator
from django.db.models import F
from django.shortcuts import render, get_object_or_404

from system.models import  News
# Create your views here.
from utils import contans


def news_list(request,template_name='news_list.html'):
   """新闻列表"""
   #当前页码
   page = request.GET.get('page',1)
   page_size = 20#每页放20条数据
   news = News.objects.filter(types=contans.NEWS_TYPE_NEW,
                              is_valid=True)
   pagainator = Paginator(news,page_size)
   page_data = pagainator.page(page)
   return  render(request,template_name,{
       'page_data':page_data
   })



def news_detail(request,pk,template_name='news_info.html'):
   """新闻详情"""
   news_obj = get_object_or_404(News,pk=pk,is_valid=True)
   #每查看一次,浏览次数+1
   news_obj.view_count = F('view_count') + 1
   news_obj.save()
   #重新从数据库中取数据
   news_obj.refresh_from_db()
   return render(request,template_name,{
       'news_obj':news_obj
   })

    

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
时间, 2020-08-30 10:16:06

同学,你好。点击新闻后进入的是新闻详情页面,不会显示新闻列表的,同学可以直接访问新闻列表页面

http://img1.sycdn.imooc.com//climg/5f4b0bcd09d8f06507400274.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快~~~~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师