使Django忽略字符串文字

时间:2010-12-29 00:15:55

标签: django string-literals

更新2:问题根本不是Django问题 - 在访问Django之前,Python绝对剥离了角色。修复是将字符串定义为原始

inputs['variable'] = r'{\bf this is code} \\'

更新:事实证明这是一个比我初看起来更深层次的问题 - 问题是python在它们到达django之前正在替换字符串文字。如果我找到解决方案,我会做更多的调查和更新。

我正在使用django来处理LaTeX模板以生成报告,并且使用Django替换部分字符串的方式遇到了很多问题。

特别是,我遇到了两个问题,我试图插入一个包含乳胶代码的变量。

首先,它会用HTML代码替换HTML字符,例如小于符号,这对于LaTeX解释器来说当然是胡言乱语。我通过将上下文设置为never autoescape来修复此问题,如下所示:

c = Context(inputs)
c.autoescape = False

但是,我仍然有我的第二个问题,即Django用相应的characers替换字符串文字,因此双反斜杠变为\,而\ b变为退格。如何强制Django将这些字符保留在原位,所以

inputs['variable'] = '{\bf this is code} \\'
使用

时,

不会被破坏

{{variable}}

在django模板中引用它?

1 个答案:

答案 0 :(得分:0)

正如上面的更新中所指出的那样,Django根本不是问题 - Python在字符串甚至是Django之前解释了字符串文字。修复是将字符串定义为raw。

inputs['variable'] = r'{\bf this is code} \\'