【问题标题】:Django endless pagination and anchorsDjango 无休止的分页和锚点
【发布时间】:2016-06-11 00:39:32
【问题描述】:

我正在创建一个 Django 站点,该站点托管大量冗长的转录辩论。

我有两个主要视图:一个为每个单独的演讲编制索引的 Haystack 搜索视图,一个为每个转录本(包含数百个单独的演讲)编制索引的完整视图。两个视图都使用 django 无休止的分页来显示结果。

我正在尝试在这两个视图之间建立链接,以便可以在其父脚本中的上下文中查看任何搜索结果(语音),并且我希望页面在页面加载时跳转到该语音 ID 的锚点。

我计算单个结果出现的页面并重定向到该 URL,同时将结果的 pk 存储在消息中,以便我可以突出显示结果:

def full_view_redirect(request, year, month, day, pk):
    y=str(year)
    m=str(month)
    d=str(day)
    qs = transcripts.objects.filter(speechdate__year=year).filter(
    speechdate__month=month).filter(speechdate__day=day).order_by('basepk').all()
    firstpk = int(qs[0].basepk)

    pageNo = ((int(pk)-firstpk)//15)+1

    messages.add_message(request, messages.INFO, pk)

    if pageNo == 1:
        return redirect("/full/"+y+"/"+m+"/"+d+"/"+"#"+str(pk))
    else: ## this doesn't work
        return redirect("/full/"+y+"/"+m+"/"+d+"/"+"?page="+str(pageNo)+"#"+str(pk))

我的问题与http://htmlasks.com/how_to_make_this_link_work_page2reviews_reload_the_page_and_jump_to_the_anchor 类似,但此处切换锚点和 ?page 的建议不起作用。

我无法让锚点工作,因此页面在页面加载时跳转到所需的结果。我错过了什么明显的东西吗?

编辑: 我验证了我想跳转到的 div 有一个正确的 id,例如。

<div class="panel panelhighlight" id="54969">

/full/1903/04/29/?page=7#54969 之类的 url 会加载正确的页面,但不会跳转到 div。 像/full/1903/04/29/#54969?page=7 这样的网址会加载第一页而不是第 7 页。

编辑 2:

我已经从 django-endless-pagination 切换到 django-digg-paginator 以便在我的视图中处理分页,而不是在模板级别。

然后,我必须通过省略页码和锚点之间的斜线来确保重新加载重定向。 /full/1903/04/29/7#54969 在加载时成功重新定位页面。

【问题讨论】:

  • 究竟是什么不起作用,你的pk页面上是否有一个锚点,以便浏览器知道跳转到哪里? &lt;a name="{{ pk }}"&gt;&lt;/a&gt;
  • 是的,这是我要跳转到的 div 的代码:{% if result.basepk|stringformat:"s" == refer_pk|stringformat:"s" %} &lt;div class="uk-panel uk-panel-box panelhighlight" id ='{{ refer_pk|stringformat:"s" }}'&gt; 在为完整视图结果实现分页之前,我还让 id 锚点工作得很好。

标签: html django pagination


【解决方案1】:

正如我在编辑中所详述的,我遇到了两个需要解决的问题:

  1. 我从 django-endless-pagination 切换到 django-digg-paginator 以便在我的视图/URL 模式中处理分页, 不在模板级别。

  2. 我必须通过省略斜杠来确保重新加载重定向 在页码和锚之间,即。 /full/1903/04/29/7#54969 在加载时成功重新定位页面。

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 2013-05-24
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多