【问题标题】:Django render with anchorDjango 使用锚点渲染
【发布时间】:2016-01-13 11:14:00
【问题描述】:

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

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

但是,我需要文件路径而不是 url。

我知道我可以使用“重定向”(Django redirect() with anchor (#) parameters) 来执行此操作,但我需要返回上下文表单。有什么想法吗?

【问题讨论】:

    标签: django


    【解决方案1】:

    在模板中包含锚点没有意义。模板是磁盘上正在渲染的模板文件的名称,它与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 %}
    

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

    【讨论】:

    • JS 是完成这个任务的唯一方法嗯(在这个特定场景中)?
    • 您可以使用锚重定向到 url,但 OP 说他们不能这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多