【问题标题】:How do I disallow comments from anonymous users?如何禁止匿名用户发表评论?
【发布时间】:2016-01-06 16:36:01
【问题描述】:

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

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

【问题讨论】:

    标签: python django django-comments


    【解决方案1】:

    如果您的目标是禁止匿名用户发布 cmets,您可以尝试覆盖默认提供的 url。将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 中的模式之前匹配。

    【讨论】:

      猜你喜欢
      • 2012-05-14
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 2022-01-21
      • 2011-04-11
      • 1970-01-01
      相关资源
      最近更新 更多