python 使用Django模板向button onClick js函数传递参数时出现问题

b4wnujal  于 2023-03-16  发布在  Python
关注(0)|答案(2)|浏览(188)

我正在使用独立的Django模板。当使用它的时候,Django模板渲染正在转义onClick函数调用参数的单引号(添加\到')。
<button id="order" onclick="myFunction('{{ val }}')"> {{ val }} </button>
在python中使用val = 'somevalue'渲染时:
输出:
<button id="order" onclick="myFunction(\'somevalue\')"> somevalue </button>
这会导致错误,按钮点击不起作用。
预期值:<button id="order" onclick="myFunction('somevalue')"> somevalue </button>
经过更多的检查,我发现双引号中的单引号被django模板渲染转义了。
有没有办法避免在双引号内的单引号中添加\?

rqdpfwrv

rqdpfwrv1#

试试这个组合,然后告诉我。
val = "'somestring'"

<button id="order" onclick="myFunction({{ val }})"> {{ val }} </button>
nzkunb0c

nzkunb0c2#

在调试和逐步完成django渲染部分之后,我发现了这个问题。
问题是我用的是

with open('template_file.html') as f:
    htmlString = f.readlines()
    t = Template('htmlString')`
    c = Context({'val': 'someval'})
    result_html = t.render(c)

通过这些步骤,当html文件被读取时,它被转换为python字符串,其中将有转义单引号(')这是问题所在。
溶液
变更是使用django.template中的django加载器

template = loader.get_template('template_file.html')
ctxt = {'val':'somevalue'}
result_html = template.render(ctxt)

有了以上这些,输出符合预期。

相关问题