[英]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.