django1.5写的一个blog 关于模板过滤 html转义的问题

focusfree 发布于 2013/08/16 15:22
阅读 620
收藏 0
django1.5写的一个blog , http://focusfree.duapp.com/
现在有个bug,不知大家一般怎么处理?
bug描述:
用html编辑日志保存到数据库,数据库存储的内容 会带html标签 如:
<p>
Airplayer 将 iTunes 音乐发送到 Android 设备播放。
</p>
----------------------
首页展示日志的时候为了保持编辑文章时的效果,去掉了模板html转义
方式 :{{ log.content|safe|truncatewords:"30"}}


这样就去掉了html转义,这样就会导致一下 文章的html标签 会影响我首页的样式,一些格式复杂的文章就会使我的首页不正常。首页相关代码如下:

<div class="span8 ">
{% if log_list %}
    {% for log in log_list %}
        <div class="span8 " >
            <legend><h4 style="color: #5CA9E2;" ><a href="/blog/{{ log.id }}">{{ log.title }}</a></h4></legend>
        </div>
        <div class="span8 ">
            {{ log.content|safe|truncatewords:"30"}}
        </div>
        <div  class="span8 ">
            <h5><em><p style="color: #5CA9E2;"><a href="/blog/{{ log.id }}"><U> 继续阅读 →</U></a></p></em></h5>
        </div>
        <div  class="span8 ">
            <div align="right"><h6><small><em>{{ log.reporter }}&nbsp on &nbsp{{ log.pub_date }}</em></small></h6></div>
        </div>
        <div class="" style="width:670px;height:1px;margin:0px auto;padding:0px;background-color:#D5D5D5;overflow:hidden;"></div>
        <div class="" style="width:670px;height:1px;margin:0px auto;padding:0px;background-color:#D5D5D5;overflow:hidden;"></div>
    {% endfor %}
{% else %}
    <h3>写一篇日志吧.</h3>

{% endif %}
</div>
请问怎么处理? 谢谢
加载中
0
typeorigin
typeorigin
用 ‘ truncatewords_html’ 替代 ' truncatewords' 会自动帮你闭合标签
focusfree
focusfree
非常感谢!
0
gaicitadie
gaicitadie

问问题前先端正你这操蛋的态度,一会djan一会jan,你一心只想着让别人帮你解决问题,而没考虑过别人帮你的时候理解你这操蛋的表达有多累

==================2013-08-16 17:47 补充=====================

现在的标题和内容还是楼主改正过的,一开始标题里是djan1.5,我以为我孤陋寡闻见识短没听说过这种高深的技术,点开链接一看内容里是jan1.5,当时更迷惑了,想了半天才想明白楼主是要讨论django的问题(浪费了好多脑细胞),想到这里就没心情帮忙解答了,先教训端正请教的态度再说

Yu_Yang
Yu_Yang
表达确实有问题,看半天也不知道到底是template有问题还是css有问题,还有似乎你英文也不给力,博客文章你怎么用log这个词,我开始还纳闷,屁大点的博客程序还写log?
focusfree
focusfree
首先谢谢你指出的问题,已更正。 但也请端正你的语气,我只是来虚心求教的。
0
gaicitadie
gaicitadie

这就是现在的年轻人,说不得骂不得,他向你求教还要求你端正语气。先给你上一堂思想政治课,教育你怎样帮助别人怎样无私奉献,给你立完规矩然后再请教你。

文革之后无师道

0
晴风晓月
晴风晓月

 如果没有弄错,就是这句有问题了

{{ log.content|safe|truncatewords:"30"}}

truncatewords会将html标签给截断,比如你举的例子中的<p></p>,就会只剩下前半截了,而没有后半截,一个不完整的html标签当然在浏览器中表现就会出问题了,貌似有一个可以根据html标签进行截断的函数,自己找一找吧,找不到就自己写一个吧。

另外,我也想说,无论做什么态度非常重要,要看你这问题,我也费了非常大的力气,总体看来在问题的描述和对待事情的态度上还有改进的空间啊

focusfree
focusfree
多谢,是因为html标签没有闭合的原因。
返回顶部
顶部