我正在按照本教程在我的django网络应用中获取嵌套评论:
http://www.maxburstein.com/blog/django-threaded-comments/
<!-- comments -->
<h1>Opinion</h1>
<form id="postcomment" method="post" action="">
{{form.as_p}}
<p><input type="submit" value="Submit" /></p>
{% csrf_token %}
</form>
<ul id="commenters">
{% for c in comment_tree %}
<li id="{{c.id}}" class="c" style="margin-left:{{c.depth|add:c.depth}}em;">
<p class="poster">Anonymous - {{c.date_create|naturaltime}}</p>
<p>{{c.content}}</p>
<p><a href="" class="reply">reply</a></p>
</li>
{% empty %}
<li>There are currently no comments. You can be first</li>
{% endfor %}
</ul>
<!-- end comments -->
问题是我只看到“提交”按钮,并且信息“目前没有评论。你可以先行!” - 我没有可以发表评论的文字区域。
我认为我的问题可能与{{form.as_p}}有关,但我检查了所有代码,但找不到答案。
解决
我发现了自己的问题。它在views.py中。 我不传递表单变量
def address_detail(request,id_address):
adres = get_object_or_404(mod_address, id = id_address)
form = mod_address_comment_form(request.POST or None)
data = mod_address.objects.select_related().all().annotate(
longitude=F('mod_address_localisation__longitude'),
latitude=F('mod_address_localisation__latitude')
)
data = list(data.values('id','mod_address_category','mod_address_comment',
'mod_address_localisation',
'longitude',
'latitude',
))
comment_tree = mod_address_comment.objects.all().order_by('path')
data = json.dumps(data)
data = json.loads(data)
return render(request, 'serwis/address_detail.html', {'address_detail_object': adres, 'comment_tree': comment_tree})
当我将最后一行改为:
return render(request, 'serwis/address_detail.html', {'address_detail_object': adres, 'comment_tree': comment_tree, 'form':form})
我可以看到文字区域。
我将此评论留给其他用户:)