Тематические комментарии Django — только один уровень

Я смотрю на реализацию django-threadedcomments и мне интересно, может ли он ограничить потоки ответов, сделанных модератором/владельцем, подобно тому, как Yelp обрабатывает отзывы пользователей и ответы владельцев бизнеса.

Например, комментарии будут выглядеть так:

«Комментарий 1» от Пользователя 1
«Комментарий 2» от Пользователя 2
«Ответ 1» от Владельца
«Комментарий 3» от Пользователя 3
«Ответ 2» от Владельца
«Комментарий 4» от User4
"Комментарий 5" пользователя User5

Как бы вы сделали это в django-threadedcomments? В качестве альтернативы, если вы сделали это, используя встроенную структуру комментариев, я также готов сделать это таким образом.


person Growth Mindset    schedule 21.10.2010    source источник


Ответы (2)


В настоящее время я работаю над небольшим CMF на основе Django, и я реализовал там потоковые комментарии, которые, похоже, работают нормально. Вы можете скачать последний исходный код по адресу http://github.com/kovshenin/Juice. заинтересованы в соке.комментариях. Потоки показаны в шаблоне news-single.html, который вызывается из представленияjuice.front.views.single. Обратите внимание на параметры уровня и отступа, которые передаются в шаблон:

# comments
p.comments = Comment.tree.filter(content_type__pk=ctype.id, object_id=p.id)

for c in p.comments:
    c.indent = c.level * 50

Объект p имеет тип Post, который передается шаблону.

Теперь, что касается ограничения потоковой передачи для других людей, кроме администратора/владельца. В том же представлении я показываю, как обрабатывать форму комментариев, где вы можете ясно видеть, что я ищу родительский комментарий, если он предоставлен. Вам придется добавить туда некоторую логику и проверить текущий логин пользователя и его привилегии, и если они не установлены, используйте parent = NULL. В шаблоне просто спрячьте ссылку на ответ ;)

Надеюсь, это поможет, и имейте в виду, что я постоянно работаю над этим проектом, 5-10 коммитов каждый день, поэтому следите за тем, какой исходный код вы загружаете. В настоящее время документация содержит только способ обработки сообщений (уже частично устаревший), но я буду постоянно его обновлять.

Ваше здоровье.

person kovshenin    schedule 21.10.2010
comment
Также обратите внимание, что для работы с деревьями требуется приложение django-mptt. Получите свой здесь: pypi.python.org/pypi/django-mptt/0.4. 1, установка через python setuptools не займет больше минуты. - person kovshenin; 21.10.2010
comment
Я смог использовать комментарии django-threaded, но я ценю ответ. - person Growth Mindset; 05.11.2010

В случае, если кто-то еще ищет это, я смог сделать это в комментариях django-threaded, используя PARENT_ID в

{% render_comment_form for [object] with [parent_id] %}

тег шаблона.

person Growth Mindset    schedule 04.11.2010