Django无尽的分页和锚点

时间:2016-02-27 19:58:25

标签: html django pagination

我正在创建一个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,但此处切换锚点和页面的建议并不起作用。

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

修改 我验证了我想跳到的div有一个合适的id,例如。

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

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

编辑2:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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