【发布时间】:2014-07-13 22:07:18
【问题描述】:
我正在显示用户给出的编辑页面。用户在文本区域中使用输入按钮提供一些文本并点击预览按钮。在预览页面中,他看到了他给出的内容(我正在用<br> 替换\n)。
我是safe他的输入像这样{{inputtext|safe}}。但是,如果他点击编辑按钮,我在其中呈现此预览输入文本,输入文本将显示为:text</br></br>text,而不像预览页面中的那样。
预览中的html:
{{inputtext|safe}}
<input type="hidden" name="inputtext" value="{{inputtext}}" />
输入页面中的html:
<textarea>{{inputtext|safe}}</textarea>
<textarea name="inputtext" style="display: none">{{inputtext}}</textarea>
我所做的是:获取用户的输入,将所有\n 替换为<br/> 并将新的输入文本放入隐藏的文本区域,以便稍后渲染它以进行预览。
在我的views.py 中,我只是渲染。那里什么都没有发生:
def addcontent(request):
if request.POST.get('inputtext'):
inputtext = request.POST.get('inputtext')
return render(request, 'addpage.html', {'inputtext':inputtext})
else:
return render(request, 'addpage.html', {})
为什么即使我很安全,文本也不显示换行符?我也试过|linebreaks但没有成功
文本区域和安全过滤器是否有一些特殊情况?
更新:
如果我在 textarea 之外使用{{inputtext|safe}},它会运行良好(显示换行符)。仅在 textarea 内部,|safe 以某种方式不起作用
【问题讨论】:
-
你能显示表单和视图代码吗?谢谢。
-
@alecxe 我更新了代码。
标签: javascript html django django-templates