In Django 1.9/Python 2.7, ich habe die folgende Ansicht:Wie abzurunden eine Geodjango Entfernung
qs = ThePlace.objects.filter(lnglat__distance_lte=(lnglat, D(km=30))).distance(lnglat).order_by('distance')
In meiner Vorlage, ich die Abstände angezeigt, wenn ich Schleife über die Objekte:
{% for qsplace in qs %}
{{ qsplace.distance }}
{% endfor %}
die „25,717617095 m“ zum Beispiel zeigt.
Ich möchte gerundete Zahlen (26 m) anzeigen. Wenn mehr als 1 km, würde Ich mag 3 km zum Beispiel zum Anzeigen
ich einen ersten TemplateTag entwickelt habe, die Zahlen runden:
from django import template
register = template.Library()
@register.filter
def dividebyth(value):
print(type(value))
value = round(value, 2)
return value
und legte in meiner Vorlage: {{qsplace.distance | dividebyth}}
, die in den folgenden Fehlern führen:
TypeError: a float is required
Es scheint, ich kann keine Entfernung Objekt abrunden.
Jeder Weg, das zu verwalten?
Vielen Dank!
funktioniert perfekt! Vielen Dank –