javascript - 如何计算 Django 模板标签中 for 循环中链接的点击次数?

标签 javascript html django

所以我有一个 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/

相关文章:

javascript - 我希望代码在 JavaScript 中选择选项后从下拉列表中删除选项

javascript - 从 php 调用 javascript 函数时遇到问题

javascript - 图像拆分抽屉下拉菜单

css - 为什么1em不是基于定义的16px?

html - chrome 和 firefox 显示不同

python - Django 2.0 ModelForm dateField 不显示为小部件

python - Heroku 零星的高响应时间

python - 检查函数是否有装饰器

java - YUICompressor 取消转义反斜杠

javascript - Babel 需要钩子(Hook)