我想我已将其缩小到Disqus评论。我正在尝试计算博客文章的点击量。我正在使用Mezzanine和内置的博客应用程序,因为该应用程序支持Disqus评论。但是,当我启用Disqus评论时,django_hitcount应用程序停止工作,即使2不应该真正相关。当django_hitcount模块使用Javascript向它的hitcounter尝试http 403 error
数据时,我得到POST
。
当我以管理员身份登录时,它可以正常工作但我想让它与匿名访问者合作。所以它与Mezzanine权限和Mezzanine评论设置有关。再次总结一下,它始终适用于启用django注释。除非以管理员身份登录,否则无法启用Disqus评论并禁用django评论。
我不想对评论做任何事情。它与django_hitcount模块内部工作方式有关。当启用Disqus评论时,它似乎不喜欢,对应于禁用的django评论,并且您尚未登录。
我想我已经使用python pbg调试器将它缩小到hitcount_tags.py中的以下行。 https://github.com/thornomad/django-hitcount/blob/master/hitcount/templatetags/hitcount_tags.py
ctype, object_pk = get_target_ctype_pk(context, self.object_expr)
这是它使用的功能。
def get_target_ctype_pk(context, object_expr):
# I don't really understand how this is working, but I took it from the
# comment app in django.contrib and the removed it from the Node.
try:
obj = object_expr.resolve(context)
except template.VariableDoesNotExist:
return None, None
return ContentType.objects.get_for_model(obj), obj.pk
我无法弄清楚这是做什么的,并且希望有人可以解释它。 https://github.com/django/django/blob/master/django/contrib/comments/templatetags/comments.py
也可能是在启用Mezzanine disqus注释且用户未登录时失败的原因。