gpt4 book ai didi

html - 为什么在 'new line' 或 'POST' 请求后 django 模板中缺少一个 'GET'?

转载 作者:可可西里 更新时间:2023-11-01 14:52:54 25 4
gpt4 key购买 nike

表单验证后,我的文本区域丢失了它的第一行。

显示textarea的结果页面与用户输入数据的页面对应相同的 View 和模板。换句话说,页面是相同的。

在我的代码中我有这样的东西:

if request.method == 'POST':
f = MyForm( request.POST )
if f.is_valid(): # f is a form
context.update( value = f.cleaned_data[ 'value' ] )
# then 'value' becomes a 'value' context variable for a template.

来自模板的片段:

...
<textarea name='value'>{{value}}</textarea>
<!-- It's a template for a result page -->
...

有趣的是,如果文本区域在开头有许多 '\n' 行,那么对于每个 'POST' 请求,它会在结果页面中丢失其中之一(并且其中之一),其中发布的数据显示在文本区域中。

有人可以帮忙吗?如何在不破解代码的情况下解决问题?

我希望 textarea 显示用户在前一页上输入的所有以 '\n' 开头的行。

更多

数据通常来自客户端 - 如果我们在 View 中输出“值”,则不会丢失任何换行符。问题是在模板中进一步显示。

环境:Windows、Firefox/Opera。

最佳答案

你确定这是 Django 特有的吗?

<html>
<body>
<textarea>`[CR]LF`
`[CR]LF`
test</textarea>
</body>
</html>

保存为普通 .html 文件时,我的浏览器中只有一个换行符。浏览器仅将第一个换行符作为“HTML 代码格式”,而不是值的一部分。

编辑

你应该能够通过像这样修改你的模板来解决这个问题:

<textarea name='value'>
{{value}}</textarea>
<!-- It's a template for a result page -->

只有第一个之后的换行符才会显示在框中(即,如果有 3 个,则得到 2 个,如果有 2 个,则得到 1 个,如果有 1 个,则得到 0 个,如果有 0 个,则再次得到 0 个)。这是因为您的浏览器将第一个换行符作为标记的一部分使用,因此将模板更改为已包含第一个换行符应该可以解决您的问题。

关于html - 为什么在 'new line' 或 'POST' 请求后 django 模板中缺少一个 'GET'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15554545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com