Django上下文在传递到temp时被修改

2024-04-28 22:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个为S3对象返回预签名url的函数,我想在我的模板中使用它

以下是我在views.py中的函数:

def player_index(request):
    mpd_url = update_file.mpd_url()
    vtt_url = update_file.vtt_url()
    context = {
        'mpd_url': mpd_url,
        'vtt_url': vtt_url,
    }

    return render(request,'index.html',context)

这是我的模板的一部分,包含上下文:

var url = '{{ mpd_url }}';

player.vttThumbnails({
  src: '{{ vtt_url }}'
});

但我的函数和模板中的URL似乎不匹配: 当我在views.py中打印它时:https://realtime-video-logs.s3.amazonaws.com/test/manifest.mpd?AWSAccessKeyId=AKIAVT3T733IUIUYBBMB&Signature=ZA9mgVjXvBShKAdvjw6hgeOwC1o%3D&Expires=1563980730

在我的模板中:https://realtime-video-logs.s3.amazonaws.com/test/thumbs.vtt?AWSAccessKeyId=AKIAVT3T733IUIUYBBMB&Signature=jqDfi15GLB77DmzrNkVn743HPdA%3D&Expires=1563981729

‘和’替换为“;”我不明白为什么


Tags: 函数pyhttps模板urlindexrequestcontext
1条回答
网友
1楼 · 发布于 2024-04-28 22:29:24

这是合乎逻辑的,Django HTML对字符串进行编码。例如,如果文本包含&,Django将用&替换它,否则&将不可见

可以通过对其应用^{} template filter [Django-doc]来关闭此功能。Django届时将:

Marks a string as not requiring further HTML escaping prior to output. When autoescaping is off, this filter has no effect.

例如:

var url = '{{ mpd_url|safe }}';

player.vttThumbnails({
  src: '{{ vtt_url|safe }}'
});

相关问题 更多 >