使用django_comments发生403错误

时间:2016-03-30 14:48:13

标签: django django-forms

我使用django_comments作为我网站的评论系统,但是当我发布评论时,它会给出403错误。为什么呢?

这是我的设置:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    #'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

其他形式效果很好。他们不会给403错误。

1 个答案:

答案 0 :(得分:2)

您的其他表单有效,因为您已禁用CSRF中间件。这是一个坏主意,因为它会使您的网站容易受到CSRF攻击。

django_comments的post_comment视图明确使用了csrf_protect装饰器。因此,您必须在模板中的表单标记中包含{% csrf_token %},以防止出现CSRF错误。

如果你还有问题,那么可能就是观点。 As the docs say,您必须确保使用request对象呈现模板,否则{% csrf_token %}标记将无效。