我正在尝试将threadedcommetns集成到我的Django应用程序中,并且无法理解它是如何工作的。以下是我的模板的外观(基于tutorial中的示例):
<h3>Comments on This Post:</h3>
{% get_threaded_comment_tree for post as tree %}
{% for comment in tree %}
<div style="margin-left: {{ comment.depth }}em;" class="comment">
{% link_to_profile comment.user %}
{% auto_transform_markup comment %}
</div>
{% endfor %}
<p>Reply to Original:</p>
<form method="POST" action="{% get_comment_url post %}">
{% csrf_token %}
<ul>
{% get_threaded_comment_form as form %}
{{ form.as_ul }}
<li><input type="submit" value="Submit Comment" /></li>
</ul>
</form>
那么,如果这些是线程评论,我如何回复某人已经留下的评论?形式在哪里?我只设法得到Reply to Original
表单,但是这样,评论根本没有线程。
我非常感谢你的帮助。
P.S。实际上,我对这个应用程序如何与django 1.3一起工作并不是很满意,所以建议一个替代方案也是一个很好的答案。
答案 0 :(得分:6)
似乎django threadedcommetns在这里不是很受欢迎:)
我找到了一个很棒的图书馆:django-mptt
这是我的教程,它描述了如何使用django-mptt在django中实现线程注释:http://codeblogging.net/blogs/1/3/
答案 1 :(得分:3)
表单中有一个“id_parent”div,将值更改为父级的id。
使用jQuery之类的东西:
$('#commentForm').find("#id_parent").attr("value", divid);
答案 2 :(得分:1)
您对原件的回复看起来不错。
<form method="POST" action="{% get_comment_url post %}">
{% csrf_token %}
<ul>
{% get_threaded_comment_form as form %}
{{ form.as_ul }}
<li><input type="submit" value="Submit Comment" /></li>
</ul>
</form>
假设您要为每条评论保留回复表格,并将其保留为线索。
<div class="bulk">
{% get_threaded_comment_tree for post as tree %}
{% for comment in tree %}
<div style="margin-left:{{comment.depth}}em;">
{{comment}}
Reply to this comment
<form action="{% get_comment_url post comment %}" method="POST">
<ul>
{% get_threaded_comment_form as form %}
{{ form.as_ul }}
<li><input type="submit" value="Submit Reply" /></li>
</ul>
</form>
</div>
{% endfor %}
</div>
在这里,我们渲染评论树并在每个评论下面留下一个表格,以便回复该特定评论。此表单的帖子网址设为{% get_comment_url post comment %}
。这是我们在问题中描述的所有内容之外的唯一变化。所有这个模板标签都说是做了一个帖子,但也为回复设置了父级。答复的父级是您要回复的{{comment}}
。
因此,如果您想要“回复原始内容”,请使用{% get_comment_url post %}
。
如果您想回复特定评论,请使用{% get_comment_url post comment %}
。
答案 3 :(得分:0)
一个明智的选择:如果您是Django(或编码)的新手,并且正在为演示或学习目的而构建简单的内容,请不要使用线程注释。这比价值还多。只需自己构建一个简单的注释模型。话虽如此,这就是我得到工作答复的方式,与@akshar的答复非常相似。
list.html:
In [38]: ord('☃')
Out[38]: 9731