We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
书中最新评论的模板代码如下:
<ul> {% for comment in comments %} <li><a href="{{ comment.target }}">{{ comment.target.title }}</a> | {{ comment.nickname }} : {{ comment.content }} </li> {% endfor %} </ul>
因为此时的 comment.target 里面的数据是评论目标页面的绝对路径如:
/post/19.html
所以此时的comment.target.title需要进行修改,应该修改为评论目标文章的标题。
修改参考思路: 在我的项目中,是给comment增加了一个新的字段target_title用于存储评论目标文章的标题。 (1)在comment/models.py中添加字段:
target_title = models.CharField(max_length=255, verbose_name='评论目标的标题')
(2)运行:
python manage.py makemigrations
python manage.py migrate
更新数据库。此时,命令行可能提示Comment模型对应的表已经存在评论记录了,这是你们之前评论时产生的记录存储在数据库中了。这时,你可以把之前的评论记录删掉,再运行以上代码,或者按照命令行提示给之前的评论记录输入默认的值。 (3)更改自定义标签,增加多一个参数target_title: comment/templatetags/comment_block.py
from django import template from comment.forms import CommentForm from comment.models import Comment register = template.Library() @register.inclusion_tag('comment/block.html') def comment_block(target, target_title): return { 'target': target, 'target_title': target_title, 'comment_form': CommentForm(), 'comment_list': Comment.get_by_target(target) }
(4)修改block.html模板文件: typeidea\themes\bootstrap\templates\comment\block.html:
<hr/> <div class="comment"> <form class="form-group" action="/comment/" method="POST"> {% csrf_token %} <input name="target" type="hidden" value="{{ target }}"/> <input name="target_title" type="hidden" value="{{ target_title }}"/> {{ comment_form }} <input type="submit" value="submit"> </form> <!--评论列表--> <ul class="list-group"> {% for comment in comment_list %} <li class="list-group-item"> <div class="nickname"> <a href="{{ comment.website }}">{{ comment.nickname }}</a> <span>{{ comment.created_time}}</span> </div> <div class="comment-content"> {{ comment.content }} </div> </li> {% endfor %} </ul> </div>
只是增加一个input标签,用于给target_title字段赋值。
<input name="target_title" type="hidden" value="{{ target_title }}"/>
(5)修改模板标签中对评论的引用: detail.html:
{% comment_block request.path post.title %}
links.html:
{% comment_block request.path "友情链接" %}
(6)修改sidebar_comments.html模板文件:
<ul> {% for comment in comments %} <li><a href="{{ comment.target }}">{{ comment.target_title |slice:"20"|add:"..." }}</a> | {{ comment.nickname }} : {{ comment.content }} </li> {% endfor %} </ul>
在这里就可以获取到评论目标的标题comment.target_title了。 在此,只是截取标题的前20个字符,并拼接"..."字符串作为结尾。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
书中最新评论的模板代码如下:
因为此时的 comment.target 里面的数据是评论目标页面的绝对路径如:
所以此时的comment.target.title需要进行修改,应该修改为评论目标文章的标题。
修改参考思路:
在我的项目中,是给comment增加了一个新的字段target_title用于存储评论目标文章的标题。
(1)在comment/models.py中添加字段:
(2)运行:
更新数据库。此时,命令行可能提示Comment模型对应的表已经存在评论记录了,这是你们之前评论时产生的记录存储在数据库中了。这时,你可以把之前的评论记录删掉,再运行以上代码,或者按照命令行提示给之前的评论记录输入默认的值。
(3)更改自定义标签,增加多一个参数target_title:
comment/templatetags/comment_block.py
(4)修改block.html模板文件:
typeidea\themes\bootstrap\templates\comment\block.html:
只是增加一个input标签,用于给target_title字段赋值。
(5)修改模板标签中对评论的引用:
detail.html:
links.html:
(6)修改sidebar_comments.html模板文件:
在这里就可以获取到评论目标的标题comment.target_title了。
在此,只是截取标题的前20个字符,并拼接"..."字符串作为结尾。
The text was updated successfully, but these errors were encountered: