Как запретить комментарии от анонимных пользователей?

Я использую django-contrib-comments, и мне интересно, как заблокировать анонимные пользователей от размещения комментариев.

Просто не отображать форму для анонимных пользователей недостаточно, поскольку анонимные пользователи по-прежнему могут отправлять запросы на правильный URL-адрес. Можно также определить токен CSRF и токен security_hash из предыдущих ответов, так что этого недостаточно.


person Flimm    schedule 06.01.2016    source источник


Ответы (1)


Если ваша цель — запретить анонимным пользователям оставлять комментарии, вы можете попытаться переопределить предоставленные по умолчанию URL-адреса. Добавьте 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.

person Derek Kwok    schedule 06.01.2016