我有一个奇怪的错误,一个Django网站可以与DEBUG = True
一起使用,但在DEBUG = False
时会以一些有趣的方式破解。
一个可能通用的事情是,当DEBUG为True时,管理员应用中的内联javascript会被转义。例如:
if(message && message!="error")
成为
if(message && message!="error")
这显然无益......
有没有人知道为什么会发生这种情况的一般原因?
更具体地说,这个网站正在使用Django CMS 2.3.5,我看到的管理页面是CMS页面管理员的一部分。我们在管理系统中有一个小的模板更改,但我已删除该模板更改,并且该错误仍然存在。无论如何,在下载页面之前,Django模板引擎中似乎发生了转义。
任何指针,帮助或好看的地方都要更加重视。
答案 0 :(得分:1)
原来是django-htmlmin中间件 - 默认情况下,只有在DEBUG
设置为False
时才启动。我有filed a bug。
转义实际上是由BeautifulSoup完成的 - 我已经问过another question about how to avoid the escaping。
由于只有管理页面受到影响,我通过添加以下方法解决了这个问题:
EXCLUDE_FROM_MINIFYING = ('^admin/', '^en/admin/')
到settings.py