Django渲染锚

时间:2016-01-13 11:14:00

标签: django

我想在阅读视图后返回特定网页位置(跳转到页内锚点)。换句话说,在views.py中,我想做类似的事情:

context={'form':my_form}
return render(request, 'my_app/my_page.html/#my_anchor', context)

但是,我需要一个文件路径而不是网址。

我知道我可以使用'redirect'(Django redirect() with anchor (#) parameters)来完成此操作,但我需要返回上下文表单。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

将锚点包含在模板中是没有意义的。模板是正在呈现的磁盘上的模板文件的名称,它与URL完全分开。

您可以将锚点添加到模板上下文中。

context['anchor'] = 'my_anchor'
return render(request, 'my_app/my_page.html, context)

然后在您的模板中,您可以使用javascript将位置更改为锚点。假设您正在使用jQuery,您可以这样做:

{% if anchor %}
<script type='text/javascript'>
$(document).ready(function(){
    window.location = '#{{ anchor }}'
});
</script>
{% endif %}

如果锚来自用户输入,我会警惕这样做。您不希望恶意用户将您重定向到其他域。我认为模板中的硬编码“#”应该会阻止浏览器重定向到其他域名,但我不确定。