繁体   English   中英

如何舍入Geodjango距离

[英]How to round a Geodjango Distance

在Django 1.9 / Python 2.7中,我具有以下视图:

qs = ThePlace.objects.filter(lnglat__distance_lte=(lnglat, D(km=30))).distance(lnglat).order_by('distance')

在模板中,当我遍历对象时,显示距离:

{% for qsplace in qs %}
    {{ qsplace.distance }}
{% endfor %}

例如显示“ 25.717617095 m”。

我想显示四舍五入的数字(26 m)。 如果超过1公里,我想显示3公里

我开发了第一个模板标签来对数字进行四舍五入:

from django import template
register = template.Library()

@register.filter
def dividebyth(value):
    print(type(value))
    value = round(value, 2)
    return value

并放入我的模板:{{qsplace.distance | dividebyth}}

导致以下错误:

TypeError: a float is required

看来我无法对距离对象进行四舍五入。

有什么办法解决吗?

谢谢!

文档

由于distance属性是一个Distance对象,因此您可以轻松地以所选单位表示该值。 例如, city.distance.mi是英里的距离值和city.distance.km是公里的距离值。

要获取以米为单位的距离值,请尝试以下操作: {{ qsplace.distance.m|dividebyth }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM