【问题标题】:Django: How do I position a page when using Django templatesDjango:使用 Django 模板时如何定位页面
【发布时间】:2010-06-14 09:51:09
【问题描述】:

我有一个网页,用户在其中输入一些数据,然后单击提交按钮。我处理数据,然后使用相同的 Django 模板显示原始数据、提交按钮和结果。当我使用 Django 模板显示结果时,我希望页面自动向下滚动到结果开始的页面部分。这允许用户在想要更改其原始数据并再次单击提交时向上滚动页面。希望有一些我目前看不到的简单方法。

【问题讨论】:

    标签: django


    【解决方案1】:

    如果您在表单的操作方法中提供fragment identifier,它应该已经可以工作了:

    <form method="post" action="/your/url#results">
        <!-- ...  -->
    </form>
    

    在表格下方的某个地方,您要显示结果:

    <div id="results">
        <!-- your results here -->
    </div>
    

    这应该会使页面跳转到 ID 为 results&lt;div&gt;

    它是完整的客户端站点,不涉及 Django、JavaScript 或类似的。

    【讨论】:

    • 嗨菲利克斯。我很好奇如果表单无法在 django 视图中验证会发生什么。我没有对此进行测试,但我认为当表单中有一些错误并且没有要显示的数据时,页面会向下滚动。我说的对吗?
    • 这很好用。谢谢! @Dzida 如果有一些结果,我只会添加结果 div,所以在出现错误的情况下它不会滚动。
    • @Dzida, @swisstony:没错,如果没有具有此 ID 的元素,则不会发生任何事情 :)
    • 好的,对。我以为您将数据插入到页面中一直存在的某个位置。在这种情况下,Felix 的解决方案更加优雅。+1
    【解决方案2】:

    你需要把你的数据包装成这样的东西:

    <div id="some-id">YOUR DATA TO BE DISPLAYED</div>
    

    如果您在视图中进行重定向,则需要重定向到 url:/some-url/#some-id

    如果您不进行重定向,则需要使用 javascript 滚动到底部(但请注意,在保存数据后,重定向是在视图中使用的首选方式)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-08
      • 2013-03-26
      • 2016-04-03
      • 2021-07-21
      • 2019-09-03
      • 2017-06-22
      • 1970-01-01
      • 2015-05-21
      相关资源
      最近更新 更多