如何禁止匿名用户发表评论?

时间:2016-01-06 16:36:02

标签: python django django-comments

我正在使用django-contrib-comments,我想知道如何禁止匿名用户发布评论。

仅仅向匿名用户显示表单是不够的,因为匿名用户仍然可以将请求发布到正确的URL。可以从之前的响应中计算出CSRF令牌和security_hash令牌,这是不够的。

1 个答案:

答案 0 :(得分:1)

如果您的目标是禁止匿名用户发布评论,您可以尝试覆盖默认提供的网址。将login_required添加到post_comment视图。通过修改django项目的urls.py来执行此操作:

from django.conf.urls import url, include
from django.contrib.auth.decorators import login_required
from django_comments.views.comments import post_comment

urlpatterns = [
    ...
    # the line below will override the url supplied in django_comments.urls
    url(r'^comments/post/$', login_required(post_comment), name='comments-post-comment'),
    url(r'^comments/', include('django_comments.urls')),
    ...
]

每当向/comments/post/发出请求时,它都会使用视图的login_required版本,因为该模式将在django_comments.urls中的模式之前匹配。