我目前正在开发一个基于 Django 的小型 CMF,并且我在那里实现了线程注释,这似乎工作正常。您可以在http://github.com/kovshenin/Juice获取最新的源代码。您感兴趣的模块是 juice.comments。线程在从 juice.front.views.single 视图调用的 news-single.html 模板中说明。注意传递给模板的 level 和 indent 参数:
# 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 次,所以请留意您下载的源代码。该文档目前仅包含处理帖子的方式(已经部分过时),但我会不断更新。
干杯。