Как отобразить результат поиска в процентах в веб-интерфейсе? - PullRequest
0 голосов
/ 05 мая 2019

Я недавно настроил Elasticsearch в своем проекте Django, используя Django-haystack, и я хочу отображать результаты поиска в процентах в моих шаблонах (html).

Так что мне интересно,есть способ достичь этого?

Быстрый пример окончательного результата будет следующим:

<div>
{% if  page_obj.object_list %}
       <ol class="row top20">

        {% for result in page_obj.object_list %}

        <div class="showcase col-sm-6 col-md-4">


<!-- Matching score to be displayed in the h5 below -->

          <h5>{{result.object.matching_score}}</h5>

        <a href="{{ result.object.get_absolute_url }}">
          <h3>{{result.object.title}}</h3>
          <img src="{{ result.object.image }}" class="img-responsive">
        </a>

        </div>

         {% endfor %}
       </ol>
{% endif %}
</div>

Я все еще новичок в этом, но, возможно, заявление If - Else, Elasticsearchзначение по умолчанию _score или даже какой-то Javascript может сделать эту работу.Я не уверен, так что вы думаете, я должен делать?

1 Ответ

0 голосов
/ 05 мая 2019

Если matching_scroe - это то, что вы хотите отобразить в процентах, вы можете сделать это, используя {{result.object.matching_score|floatformat:2}}%

Если у вас есть 2 значения, которые нужно разделить, вам нужно написать тег шаблона

В каталоге templatetags, mytags.py

from django import template
register = template.Library()


@register.filter
def div(numerator, denominator):
    return float(numerator/denominator)

В вашем html-файле

{% load mytags %}

{{ object.numerator|div:object.denominator }}%
...