Cómo representar datos en una plantilla {% incluyó a.html%} en Django

Tengo un rank.html que es una plantilla para compartir públicamente para muchas otras plantillas a través de{% include rank.html %} método.

Esta plantilla mostrará la base de noticias calientes de 48 horas en el número de clics.

Aquí está la vista.py

def rank(self, request):
    hot_news_48h = h_mostViewed(48, News, '-pv')

   return render(request, "rank.html", {
        'hot_news_48h': hot_news_48h,})

h_mostViewed (48, Noticias, '-pv') es una función, que puede obtener la publicación más vista (clic) en 48 horas. Funciona.

Aquí está el rank.html:

<ul>
    {% for hot_view in hot_news_48h %}
 <li>
    <a href="{% url 'news:news_detail' hot_view.pk %}" >
      <img src="{{ MEDIA_URL }}{{ hot_view.image }}" >
    </a>

    <a href="{% url 'news:news_detail' hot_view.pk %}">
      <h6>{{ hot_view.title }}</h6>
     </a>
</div>
</li>
  {% endfor %}
</ul>

Aquí está la url.py

path('hot_news', views.rank, name="hot_news")

El problema es que solo puedo obtener el html, pero no puedo recibir los datos.

Pero si abandono el método {% include rank.html%} e inserto el código de rank.html directamente dentro de cada plantilla que necesita esta función, puedo obtener los datos. Tome la plantilla new_detail.html como ejemplo:

Aquí está la vista.py

def newsDetailView(request, news_pk):
    news = get_object_or_404(News, id=news_pk)
    all_comments = NewsComments.objects.filter(news=news)
    news.comment_nums = all_comments.count()
    news.save()
    News.objects.filter(id=news_pk).update(pv=F('pv') + 1)

    hot_news_48h = h_mostViewed(48, 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,
        'all_comments': all_comments,
        'hot_news_48h': hot_news_48h,

        'relative_news': relative_news
    })

Aquí está el urls.py

path('-<int:news_pk>', views.newsDetailView, name="news_detail"),

Así arriba, inserté directamente el código de rank.html en new_detail.html y funciona. Puedo obtener los datos.

Mi pregunta es qué debo hacer o corregir, para poder obtener los datos en el método {% include rank.html%}. Porque {% include rank.html%} es simple y flexible. No quiero repetir el mismo código en varias plantillas.

¡Muchas gracias por su paciencia

Respuestas a la pregunta(2)

Su respuesta a la pregunta