所以我有一个 Django 应用程序,我每天上传一篇文章(更准确地说,我提供文章的标题和副标题及其链接,以便用户可以单击链接查看整篇文章) 。我在模板标签中使用 for-loop 来实现这一点,如下所示。
...
{% for item in articles %}
<div class="row">
<a href="{{item.url}}" class="all-articles" target="_blank" rel="noopener noreferrer">
<div class="col">
<span class="title">{{item.title}}</span><br>
<span class="subtitle"> | {{item.subtitle}}</span>
</div>
</a>
</div>
{% endfor %}
...
现在我想查看每篇文章的点击次数。但我不知道如何使其成为可能。任何想法?
预先非常感谢您。 :)
最佳答案
为此,您需要编写一个 View ,将您重定向到 URL,同时计算点击次数。例如(从 documentation 部分复制粘贴):
您可以使用RedirectView
进行重定向:
from django.shortcuts import get_object_or_404
from django.views.generic.base import RedirectView
from articles.models import Article
class ArticleCounterRedirectView(RedirectView):
permanent = False
query_string = True
def get_redirect_url(self, *args, **kwargs):
article = get_object_or_404(Article, pk=kwargs['pk'])
article.update_counter()
return article.url
然后,将其添加到urls.py
from django.urls import path
from article.views import ArticleCounterRedirectView, ArticleDetail
urlpatterns = [
path('counter/<int:pk>/', ArticleCounterRedirectView.as_view(), name='article-counter'),
]
最后,使用以下代码更新模板:
<a href="{% url 'article-counter' item.pk %}" class="all-articles" target="_blank" rel="noopener noreferrer">
关于javascript - 如何计算 Django 模板标签中 for 循环中链接的点击次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62828521/