Django 模板渲染的bug

在写一个Django项目时,需要编辑用户数据,用户信息,有外键,从数据库获取信息后,将需要编辑的信息填充到文本框中,供修改用。

奇怪的是我获取数据GET,以及提交数据POST时,从后台看信息都是正确的,但我再次编辑数据时,它获取到的数据却出现了截断的现象。

比如,我将用户地址设置为:New York,

点击编辑:

可以看到能正常显示。好点击提交,保存。保存后会显示在页面,也正常。

再次编辑:

神奇的事情发生了,只有New, york去了哪里?

我在后台打印出的get,post时的地址都是New york.但为什么会在前端出错呢?

显然问题出现在前端 ,检查代码:

<div class="form-group">
                <label for="addr">地址</label>
                <input type="text" class="form-control" id="addr" name="addr"
                       value={{ author.author_detail.addr }} placeholder="地址">
            </div>

这看来也没问题啊,然后我查看一下渲染的代码:

<input name="addr" class="form-control" id="addr" type="text" placeholder="地址" value="New" york="">

看到没value={{author.author_detail.addr}} 被渲染成了 value="New" york=""

那么解决办法也简单,将它变成整个字符串

也就是:

<div class="form-group">
                <label for="addr">地址</label>
                <input type="text" class="form-control" id="addr" name="addr"
                       value="{{ author.author_detail.addr }}" placeholder="地址">
            </div>

将这个模板语言的变量用双引号包括起来,它渲染的就是一个字符串了。问题解决。

上一篇:Python 装饰器

下一篇:Django 中间件