Как аутентифицировать пользователя в рамках Django Comment?

Я использую структуру комментариев Django как часть своего проекта. С настройками по умолчанию анонимные пользователи могут оставлять комментарии по своему желанию.

Я хочу изменить эту функцию, чтобы только авторизованные пользователи могли оставлять комментарии. Более того, я хочу, чтобы имя этого аутентифицированного пользователя отображалось рядом с комментарием.

Как мне это сделать? Я прочитал документацию и понимаю, что предопределенная модель комментариев имеет поле «пользователь», которое является внешним ключом для модели пользователя/пользователя, опубликовавшего комментарий (Ссылка здесь). Однако я не понимаю, как назначить request.user (т.е. текущего аутентифицированного пользователя) этому пользовательскому полю, которое принадлежит экземпляру комментария.

Другими словами, как Django обрабатывает данные формы на внешнем интерфейсе для модели комментариев на внутреннем уровне и как я могу отредактировать этот процесс, например, назначить request.user пользовательскому полю в модели комментариев.

Спасибо за помощь!


person goelv    schedule 15.08.2012    source источник


Ответы (1)


Начните с документации.

В основном вам нужно (как минимум):

  1. включите django.contrib.auth в своем settings.py
  2. определить вид входа
  3. используйте декоратор @login_required для представлений, которые вы хотите ограничить
  4. проверьте if request.user.is_authenticated() в коде обработки формы.
person Kimvais    schedule 15.08.2012
comment
Это относится к обычной аутентификации. Как мне применить эту технику конкретно к фреймворку комментариев? Эта структура определяется Django за кулисами, поэтому я не знаю, как изменить конкретные процессы. - person goelv; 15.08.2012
comment
Есть ли причина, по которой вы не можете использовать обычную аутентификацию? (Оба поставляются по умолчанию в django.contrib, поэтому я уверен, что они прекрасно сочетаются друг с другом) - person Kimvais; 16.08.2012