【发布时间】:2021-05-23 04:21:33
【问题描述】:
我正在构建一个 BlogApp,我实现了一个功能来计算 Post 的视图。但是浏览器的帖子页面中没有显示视图。
我要做什么
我正在尝试计算用户访问时帖子获得的观看次数。
问题
浏览器的帖子页面中未显示帖子视图。
我尝试了什么
1)。我还尝试了 models.IntegerField 但对我不起作用,因为每当用户刷新页面时,它每次都会为单个用户增加一个视图。
2)。我遵循了一些教程,但所有教程都在 Class Based Views 上,我正在使用 Function Based Views。
3)。然后我想到了IP address 但它也对我不起作用,因为它不适用于我的服务器。
然后我想到了views 变量中的ManyToManyField。但它也不适合我,我不知道问题出在哪里。
views.py
def detail_view(request,pk):
data = get_object_or_404(BlogPost,pk=pk)
queryset = BlogPost.objects.order_by('viewers')
context = {'queryset':queryset,'data':data}
return render(request, 'mains/show_more.html', context )
models.py
class BloPost(models.Model):
post_owner = models.ForeignKey(User,default='',null=True,on_delete = models.CASCADE)
date_added = models
viewers = models.ManyToManyField(settings.AUTH_USER_MODEL,related_name='viewed_posts',editable=False)
show_more.html
1)。这是显示auth.User.None
{{ data.viewers }}
2)。这是显示所有帖子。
{{ queryset }}
我不知道我做错了什么。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
{{ data.viewers.count }}将为您提供相关实例的计数。 -
感谢您的评论。但是它一直显示
0。 -
@Progam:当然,您永远不会向
viewers添加任何用户。究竟为什么要使用 FBV? -
我想让它自动统计浏览量。
标签: python html django django-models django-views