我认为这似乎是一个千言万语的语言问题。如果我在settings.py中使用en-us它可以工作,但如果我将它改为丹麦语' da'它将它转换为逗号...我可以使用' da'并强制模型使用英语?
如果我将11.766647100448608
粘贴或键入管理员的lon字段并点击保存,则会将.
更改为,
,如11,766647100448608
。其他字段lat的情况也是如此。这是正常的行为吗,这是我的意思吗?
我需要这段时间,因为它是mapbox的坐标。我的标记最终在地球的另一边停了下来。
从模型中:
class Map(models.Model):
project = models.ForeignKey(Project, related_name='map')
lon = models.DecimalField(max_digits=17, decimal_places=15, default='')
lat = models.DecimalField(max_digits=17, decimal_places=15, default='')
从模板:
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
{{ map.lon }},
{{ map.lat }}
]
}
这就是我想要的:
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [
11.766647100448608,
55.22922803094453
]
}
}
但这就是我得到的:
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [
11,766647100448608,
55,22922803094453
]
}
}
答案 0 :(得分:1)
django管理员可能表现正常;问题在于如何将十进制字段转换为模板中的字符串。这可能是由于国际化。实际上,DECIMAL_SEPARATOR设置存在,但"区域设置规定的格式具有更高的优先级"。
我建议你在模板中尝试以下内容:
{% load l10n %}
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
{{ map.lon|unlocalize }},
{{ map.lat|unlocalize }}
]
}
unlocalize
模板标记在Django documentation。