我有下表:
db.define_table('comm',
Field('post','reference post', readable=False, writable=False),
Field('body','text', requires=IS_NOT_EMPTY()),
auth.signature
)
并在python函数中,代码如下:
form=SQLFORM(db.comm).process()
我通过python函数在返回的视图中调用该表单
{{=form}}
问题是当用户输入两个或更多段落时,它不会检测换行符。我该如何解决这个问题?
答案 0 :(得分:1)
假设您在视图中引用了用户输入的后续显示,则可以使用<pre>
标记:http://www.w3schools.com/tags/tag_pre.asp。但是,您可能需要一些CSS来获得您喜欢的字体/样式(默认情况下,浏览器将使用具有固定宽度字体的替代样式)。
您还可以使用<br>
标记替换换行符:
{{=XML(record.body.replace('\n', '<br>'), sanitize=True, permitted_tags=['br/'])}}
由于文本现在包含<br>
个HTML标记,因此有必要将其包含在XML()
中以防止web2py转义HTML - 但您还需要清理文本并允许仅 <br>
标记,以防止恶意代码被执行。
答案 1 :(得分:0)
使用pre标签显示要检测换行符的内容。
HTML pre元素(或HTML Preformatted Text)表示 预先格式化的文本。此元素中的文本通常显示在 一个非比例(&#34; monospace&#34;)字体,与其中的字体完全一致 文件。此元素中的空格显示为已键入。
{{for post in comments:}}
<pre>{{=post.body}}</pre>
{{pass}}