2016-12-21 6 views
1

それは千のセパレータで言語の問題だと思われます。私がen-usをsettings.pyで使用すると、それはうまく動作しますが、それをデーモンに変更すると、コンマに変換されます... 'da'を使用して、英語を使用するように強制できますか?Django DecimalField "。" "、"の代わりに

私が貼り付けたり、管理者でLONフィールドに11.766647100448608を入力して保存しヒットした場合、それは,11,766647100448608等に.を変更します。他のフィールドラットの場合も同様です。それは普通の行動ですか、私の終わりには何か?

そして、それはマップボックスの座標なので、ピリオドが必要です。そして、私のマーカーは地球の反対側の途中で終わります。モデルから

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 
    ] 
    } 
} 

答えて

1

django管理者が正しく動作している可能性があります。問題は小数フィールドがテンプレート内の文字列に変換される方法にあります。これは多分国際化によるものです。実際には、DECIMAL_SEPARATORの設定が存在しますが、「ロケールによって決まる形式の優先順位が高い」

私はあなたがテンプレートに次のことを試してお勧め:

{% load l10n %} 

"type": "Feature", 
    "geometry": { 
     "type": "Point", 
     "coordinates": [ 
     {{ map.lon|unlocalize }}, 
     {{ map.lat|unlocalize }} 
     ] 
    } 

unlocalizeテンプレートタグがDjango documentationに記載されています。

関連する問題