1

更新 2:问题根本不是 Django 问题 - Python 在到达 Django 之前肯定会删除字符。解决方法是将字符串定义为原始的

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

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

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

具体来说,我遇到了两个问题,我尝试插入一个包含乳胶代码的变量。

第一个是它会用它们的 HTML 代码替换 HTML 字符,例如小于符号,这对于 LaTeX 解释器来说当然是胡言乱语。我通过将上下文设置为从不自动转义来解决此问题,如下所示:

c = Context(inputs)
c.autoescape = False

但是,我还有第二个问题,即 Django 将字符串文字替换为相应的字符,因此双反斜杠变为 \,而 \b 变为退格。我怎样才能强制 Django 将这些字符留在原处,所以

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

当我使用时不会被破坏

{{variable}}

在 django 模板中引用它?

4

1 回答 1

0

正如上面的更新中所指出的,Django 根本没有问题——Python 甚至在字符串到达​​ Django 之前就已经解释了字符串文字。解决方法是将字符串定义为原始字符串。

inputs['variable'] = r'{\bf this is code} \\'
于 2010-12-29T01:00:38.593 回答