【问题标题】:Showing who viewed the post ( user )显示谁查看了帖子(用户)
【发布时间】:2021-04-20 09:04:32
【问题描述】:

我正在构建一个 BlogApp 并且我构建了一个功能,它计算了观众人数。但我想知道谁看过这篇文章。

views.py

queryset = BlogPost.objects.annotate(num_views=Count('viewers')).order_by('-num_views')
datas = get_object_or_404(queryset,pk=pk)
if request.user.is_authenticated:
    created = BlogPost.viewers.through.objects.get_or_create(post=datas,user=request.user)

每当我打印 {{ datas.viewers }} 时,下面的代码都会计算 Post 的浏览量,但是当我尝试打印 {{ datas.viewers.user.username }} 时,它不会显示查看过的用户

    class BlogPost(models.Model):
        viewers = models.ManyToManyField(settings.AUTH_USER_MODEL,related_name='viewed_posts',editable=False)

但我正在尝试显示“谁查看了 BlogPost。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: python django django-models view


    【解决方案1】:

    你需要遍历模板中的M2M数据,如

    {% for viewer in datas.viewers.all %}
        {{ viewer }}
    {% endfor %}

    【讨论】:

      猜你喜欢
      • 2013-09-03
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      相关资源
      最近更新 更多