我的4个函数中都有相同的代码块,有什么方法可以避免重复相同的代码块吗?你知道吗
下面是相同的代码块:
def function_name():
...some code...
hot_news_48h = h_mostViewed(48, News, '-pv')
hot_news_1w = w_mostViewed(1, News, '-pv')
...some code...
return render(request, "template_name.html", {
...some code...
'hot_news_48h': hot_news_48h,
'hot_news_1w': hot_news_1w,
...some code...
})
以下是函数1:
def newsDetailView(request, news_pk):
news = get_object_or_404(News, id=news_pk)
tags = news.tag.annotate(news_count=Count('news'))
News.objects.filter(id=news_pk).update(pv=F('pv') + 1)
hot_news_48h = h_mostViewed(48, News, '-pv')
hot_news_1w = w_mostViewed(1, News, '-pv')
relative_news = News.objects.filter(tag__id__in=news.tag.all()).exclude(id=news_pk)[:6]
return render(request, "news_detail.html", {
'news': news,
'tags': tags,
'hot_news_48h': hot_news_48h,
'hot_news_1w': hot_news_1w,
'relative_news': relative_news
})
以下是函数2:
def tagNewsList(request, tag_pk):
tag = get_object_or_404(Tag, pk=tag_pk)
news_list = News.objects.filter(tag=tag)
hot_news_48h = h_mostViewed(48, News, '-pv')
hot_news_1w = w_mostViewed(1, News, '-pv')
return render(request, "tags_list.html", {
'news_list': news_list,
'tag': tag,
'hot_news_48h': hot_news_48h,
'hot_news_1w': hot_news_1w,
})
有朋友知道如何避免吗?非常感谢!你知道吗
非常感谢@Lemayzeur!你知道吗
我最终用{%include news解决了这个问题_排名.html%}+上下文_处理器。它节省了我很多代码。你知道吗
今天我学习了如何创建自定义上下文处理器。你知道吗
相关问题 更多 >
编程相关推荐