我正在创建一个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
在加载时成功重新定位页面。
答案 0 :(得分:0)
正如我的编辑中所详述,我有两个问题需要解决:
我从django-endless-pagination切换到 django-digg-paginator,以便在我的视图/ URL模式中处理分页, 不是在模板级别。
我必须通过省略斜杠来确保重定向重新加载
在页码和锚点之间,即。 /full/1903/04/29/7#54969
在加载时成功重新定位页面。