我对Django模板和CharField模型有问题。
所以我有一个带字符域的模型,它创建了一个用下划线替换空格的slug。如果我创建了一个对象Somename somelash,这将创建slugSomename\u somelash并按预期在模板上显示。
但是,如果我创建一个对象,就会创建一个名为Somename的对象(注意第二个空格),slugSomename\uu Somename,尽管在Django控制台上我将其视为<Object: Somename Somesurname>
,但在模板上它显示为Somename Somename。
那么Django模板会以某种方式去掉空格吗?是否有一个过滤器可以用来获取带有空格的名称?
首先让我说@DNS的答案是正确的,为什么没有显示空格。
考虑到这一点,这个模板过滤器将用
替换字符串中的任何空格用法:
输出将是
hey there world
代码如下:
有关模板过滤器如何工作以及如何安装它们的说明,check out the docs。
有一个内置的模板标记无空格
结果是:
在djangodocumentation中阅读更多内容。
Django认为对象在内部有两个空格(根据
repr
输出中的两个下划线和两个空格判断)。它在模板中只显示一个空格,这就是HTML的工作原理。注意,在你刚才问的问题中,大多数你进入两个空格的地方,只有一个出现了?从HTML4 Spec:
正如S.Lott所建议的,你可以通过添加调试日志,或者使用Firefox的Firebug插件或类似的东西来验证我的猜测是否正确,以查看到底有什么东西被发送到浏览器。那你就知道问题出在哪一头了。
如果多个空格对您来说真的很重要,那么您需要使用
实体,尽管我不知道如何让Django使用它们对特定对象的输出进行编码。相关问题 更多 >
编程相关推荐