¿Cómo evitar repetir el mismo bloque de código en Django?

Tengo el mismo bloque de código en 4 de mis funciones, ¿hay alguna forma de evitar repetir el mismo bloque de código?

Aquí está el mismo bloque de código:

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... }) 

Aquí está la función 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 }) 

Aquí está la función 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, }) 

¿Algún amigo sabe como evitarlo? ¡Muchas gracias!

Gracias @ Lemayzeur tanto!

Finalmente resolví el problema usando {% include news_rank.html%} + context_processors. Me ahorra mucho código.

Aprendí cómo crear un procesador de contexto personalizado hoy.