我正在创建一个专门用于练习的博客,我最近添加了视图计数器功能问题是当匿名用户打开帖子时django引发错误,因为在post_detail视图中我请求用户名这是视图:
p.json {
white-space: pre;
}
UserSeenPosts模型:
def post_detail(request, post_id):
post = Post.objects.get(id=post_id)
if UserSeenPosts.objects.filter(post=post, user=request.user).exists():
print "all ready"
else:
post.views += 1
post.save()
UserSeenPosts.objects.create(user=request.user, post=post)
return render(request, 'blog/detail.html', {'Post': Post.objects.get(id=post_id)})
所以django可以给guest_ad / guest2这样的匿名用户名,这应该被序列化以避免重复名称
答案 0 :(得分:1)
您必须检查用户是否已通过身份验证。
if request.user.is_authenticated():
UserSeenPosts.objects.create(user=request.user, post=post)