0
我使用的是django-contrib-comments,我想知道如何禁止匿名用户发表评论。如何拒绝来自匿名用户的评论?
仅仅不向匿名用户显示表单是不够的,因为匿名用户仍然可以将请求发送到正确的URL。有可能根据以前的回应来计算CSRF令牌和令牌,所以这还不够。
我使用的是django-contrib-comments,我想知道如何禁止匿名用户发表评论。如何拒绝来自匿名用户的评论?
仅仅不向匿名用户显示表单是不够的,因为匿名用户仍然可以将请求发送到正确的URL。有可能根据以前的回应来计算CSRF令牌和令牌,所以这还不够。
如果您的目标是禁止匿名用户发表评论,您可以尝试覆盖默认提供的网址。将login_required
添加到post_comment
视图。通过修改urls.py
为Django项目做到这一点:
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
之前匹配。