“Python Web开发:新闻动态”的版本间的差异
来自CloudWiki
第30行: | 第30行: | ||
===修改视图函数=== | ===修改视图函数=== | ||
+ | homeApp/views.py: | ||
+ | |||
+ | <nowiki> | ||
+ | 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, | ||
+ | }) | ||
+ | </nowiki> |
2021年6月7日 (一) 06:43的版本
背景
“新闻动态”分为左右两个部分,
左边是展报,右边是新闻列表
展报部分以图片形式吸引读者
列表部分 显示“新闻动态”模块的列表信息
实训步骤
修改数据模型
为了能够实现展报功能,
需要为“新闻”模型添加一个额外的图片字段用于存储海报。
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, })