我正在创建一个Django站点,该站点将主持大量长时间的转录辩论。
我有两个主要视图:Haystack搜索视图(对每个语音进行索引)和完整视图(对每个成绩单进行索引)(包含数百个单个语音)。两种视图都使用django无休止的分页来显示结果。
我试图在这两个视图之间建立链接,以便可以在其父成绩单的上下文中查看任何搜索结果(语音),并且我希望页面在页面加载时跳转到该语音ID的锚点。
我计算显示单个结果的页面,并在将结果pk存储在消息中的同时重定向到该URL,以便突出显示结果:
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">
像url这样的网址/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
加载后成功重新定位页面。
正如我的编辑中详述的那样,我遇到了两个需要修复的问题:
我从django-endless-pagination切换到django-digg-paginator,以便在我的视图/ URL模式(而不是模板级别)内处理分页。
我必须通过省略页码和锚点之间的斜线来确保重定向重新加载,即。/full/1903/04/29/7#54969
加载后成功重新定位页面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句