Я использую django-haystack, и я пытаюсь реализовать способ добавить номер страницы к PDF-ссылке, чтобы открыть ее на определенной странице.Моя цель - открыть PDF-файл на странице, где найден первый хит.Я знаю позицию попадания в моем документе и позицию, где страница изменяется.Например, я знаю, что первый удар начинается с символа 2067, а вторая страница меняется с символа 3000, поэтому мне нужно открыть PDF-файл на второй странице.
Мой вопрос: как я могу получить результатфункция, которая находит номер страницы, где PDF должен открываться и отображать его?
Я думаю, что результат должен быть примерно таким <a href="{% static 'img/sample.pdf#page={{ pageNumber }}' %}">
, но я открыт для любых других предложений.
PS Я не прошу вас решить мою проблему.Я прошу предложений или конструктивного обсуждения, поскольку я новичок в Django.
Заранее спасибо
РЕДАКТИРОВАТЬ
Так что после исследования длянемного я сделал следующее.Я обнаружил, что у класса подсветки есть функция, которая находит положение попаданий.Я добавил геттер в этот класс, чтобы получить позиции (я изменю его позже. Сейчас я хочу посмотреть, работает ли он так, как я думаю).Затем в моем файле views.py
я добавил следующее
from django.shortcuts import render
from haystack.utils.highlighting import Highlighter
def getPage(request):
pos = Highlighter.getPos()
print (pos)
return render(request, 'search/_result_object.html', {'pos': pos})
, а в своем HTML-файле я добавил это
<ul>
{% for element in pos %}
<li>{{ element }}</li>
{% endfor %}
</ul>
просто для того, чтобы напечатать позицию и увидеть, что все работает нормально.Но список пуст, что означает, что я не получаю результатов.Может быть, что-то работает не так, как я думаю.Любые идеи?
Редактировать # 2
Я думаю, что невозможно получить позиции от маркера, так как у меня нет фактического объекта маркера для того, чтобыполучить позиции, используя геттер.
Есть ли другой способ передачи аргументов между маркером и представлением?Мне удалось получить термин запроса в моем представлении, но у меня нет текстового блока, в котором был найден термин запроса, и полного текста для повторного поиска позиции.Кроме того, я думаю, что этот подход будет медленным, когда программа масштабируется.