Python Web开发:新闻动态
来自CloudWiki
背景
“新闻动态”分为左右两个部分,
左边是展报,右边是新闻列表
展报部分以图片形式吸引读者
列表部分 显示“新闻动态”模块的列表信息
实训步骤
修改数据模型
为了能够实现展报功能,
需要为“新闻”模型添加一个额外的图片字段用于存储海报。
newsApp/models.py:
photo = models.ImageField(upload_to='news/', blank=True, null=True, verbose_name='展报')
同步数据库:
python manage.py makemigrations
python manage.py migrate
修改视图函数
homeApp/views.py:
def home(request): # 新闻展报 newList = MyNew.objects.all().filter(~Q( newType='通知公告')).order_by('-publishDate') postList = set() postNum = 0 for s in newList: if s.photo: postList.add(s) postNum += 1 if postNum == 3: # 只截取最近的3个展报 break # 新闻列表 if (len(newList) > 7): newList = newList[0:7] # 返回结果 return render(request, 'home.html', { 'active_menu': 'home', 'postList': postList, 'newList': newList, })