【发布时间】:2021-07-16 15:54:26
【问题描述】:
我在 Django 中有一个距离查询,并打印了一个带几个小数点的距离。它以测量格式将距离显示为 1023.40258027906 m。我想让这个人类可读。我尝试使用 Decimal 但失败了,因为它不适用于测量对象。测量对象是带有 km、m、cm 等标签的距离对象。通过人性化,我的意思是不超过 2 或 3 个十进制数字。这些是从
导入的from django.contrib.gis.measure import D
from django.contrib.gis.db.models.functions import Distance
这是用于生成距离测量的查询集。 查询集:
queryset = Apartment.objects.filter(geom__distance_lte=(user_location, D(km=2))).annotate(distance=Distance('geom', user_location))
<style type="text/css">
ul{
list-style-type: circle;
margin:0px;
padding-left: 1em;
}
</style>
<head>
</head>
<body><strong>Nearby Apartments</strong>
{% if apartments %}
<ul>
{% for apartment in apartments %}
<li>
{{ apartment.apt_id }}: {{apartment.distance}}
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</body>
【问题讨论】:
-
您从未提及确切“测量对象”是什么(可能来自
django.contrib.gis.measure?)以及您所说的人性化究竟是什么意思,请在您的问题中说明。跨度>