我最近使用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都可以完成这项工作。我不确定,所以您认为我应该怎么做?
答案 0 :(得分:0)
如果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 }}%