模型:
Field('text1', type='text', length=1000, notnull=True)函数:
def textinput():
f=SQLFORM(db.example, fields=['text1'])
if f.accepts(request.vars, session):
return dict(form=f)我希望能够以适当的行距/格式显示“text1”字段。如果用户要按下表单中的enter键来开始一个新的行或整个新的段落,我希望这反映在视图上。
例如,如果用户在SQLFORM中输入以下内容:
This is a paragraph. Blah blah blah blah blah blah blah.
Blah blah blah blah blah blah blah blah blah.
Blah blah blah blah.
This is another paragraph. Blah blah blah blah blah.
Blah blah blah blah blah.我希望它在视图中完全像那样出来,而不是把它们都塞进没有间隔的地方。我该怎么做呢?我正在考虑使用.replace方法,并将所有输入击键替换为换行,但我不知道如何做到这一点。我搜索了所有的谷歌,但我找不到我的确切问题。
任何帮助都将不胜感激。谢谢。
发布于 2012-05-14 13:21:42
最简单的方法是将文本包装在<pre>标记中,并使用CSS控制样式。还可以用<br />标记替换换行符('\n')。如果要通过只读SQLFORM、Crud读取表单、SQLTABLE或SQLFORM.grid显示文本,则可以设置字段的“表示”属性以控制显示:
使用<pre>**:**的
Field('text1', type='text', length=1000, notnull=True,
represent=lambda text, row: PRE(text))使用换行替换的:
Field('text1', type='text', length=1000, notnull=True,
represent=lambda text, row: XML(text.replace('\n', '<br />'),
sanitize=True, permitted_tags=['br/']))如果要手动将文本插入视图,则可以直接在视图中使用上述任何一种方法。例如:
{{=PRE(row.text1)}}注意,浏览器通常以固定宽度的字体在<pre>标记中显示文本.如果您不想这样做,您需要使用CSS来更改字体。
https://stackoverflow.com/questions/10578774
复制相似问题