私は基本的に他の情報と一緒に靴のサイズを格納するアプリを作成しています。私はサイズを格納するためにDjango Decimalフィールドを使用していますが、小数フィールドは10のようなサイズを10.0として格納していますので、私の質問は、作成する方法があるか、またはint(10)値をintとして格納し、小数点が与えられた場合は (10.5)を小数点として格納しますか?djangoスマート小数点フィールド
答えて
TBH属性 - 有効な靴のサイズの比較的少数とあなたがしたいそれらをどのようにフォーマットすることができる方法があります。
それは靴以外のものが含まれていてもよい製品モデルの一部だ場合は、「M」のような値が、「L」、「XXL」など
をも格納することができますので、「サイズ」のCharFieldですが便利です靴のサイズを計算する必要はないので、DecimalFieldを使用する必要はありません。
そのため、dbに保存されている内容は表示されません。@j_sykには、コメント内のこれらの行に沿っていくつかの良い候補があります。
私はこのソリューションを採用した「M」、「L」などの良い点。スリッパやサンダルのように、このようなサイズの靴でさえ、記憶されたデータが靴に関するものか、靴のサイズに関するものか(つまり、靴のサイズがXLであるとは決して言いません)かどうかによって決まります。 –
私は選択肢があるチャーフィールドを使用することを選んだ、私は今のところ最も簡単な方法を考え出した:) – Paulo
文字列に変換するだけでは機能しませんか?そのままの状態で保管することができますが、データを提示するときに好きなように番号をフォーマットしてください。私はおそらく選択肢がCharFieldですが使用したい靴のサイズフィールドの
>>> str(Decimal(10))
'10'
>>> str(Decimal(10.5))
'10.5'
>>> str(Decimal(10.0))
'10'
私はこれについて考えたことはありません、あなたはこのための最善のアプローチだろうと思います。つまり、この機能を追加するためにカスタムフィールドを書く必要がありますか? – Paulo
'CharField'を[初期値](https://docs.djangoproject.com/en/dev/ref/forms/fields/#initial)で使用して、望みどおりに表示することができます。文字列)。保存するときに、 'Decimal'クラスがそれを保存しますので、心配はありません:うまくいくでしょう。 – jro
しかし、小数点以下のクラスがそれを保存すると、それは.o? – Paulo
:
- これはここ
がある表現するだけですので、カスタム__unicode__
にトリックを実装するカスタムdecimal.Decimal
インスタンスを返しDjango model Field
class PyPrettyDecimal(decimal.Decimal):
def __unicode__(self):
# TODO: to improve with decimal properties ?!?
mod = self - int(self)
if not mod:
rv = int(self)
else:
rv = self.quantize(mod.normalize())
return unicode(rv)
class PrettyDecimalField(models.DecimalField):
__metaclass__ = models.SubfieldBase
def to_python(self, value):
if value is None:
return value
try:
return PyPrettyDecimal(value)
except decimal.InvalidOperation:
raise exceptions.ValidationError(self.error_messages['invalid'])
- 1. 小数点のDjangoクエリ
- 2. 小数点/貨幣フィールドの小数点以下2桁
- 3. エンティティフレームワークを小数点からフィールドへ
- 4. 小数点(10,4)フィールドのフル小数点を表示するには
- 5. 小数点浮動小数点(C++)
- 6. 小数は小数点
- 7. djangoスマート選択アプリ
- 8. 小数点と小数点の相違点
- 9. 数字フィールドからカンマと小数点を削除します
- 10. 小数点値
- 11. 浮動小数点数浮動小数点数値
- 12. 浮動小数点数は浮動小数点数ですか?
- 13. "。" zendバリデータの浮動小数点数の小数点以下は
- 14. 変数の浮動小数点浮動小数点
- 15. PHP浮動小数点数2小数点
- 16. 浮動小数点数を小数点なしで書く
- 17. 小数点から偶数の小数点の変換をC#
- 18. 浮動小数点数と小数点の計算
- 19. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 20. .tofix(2)小数点
- 21. 丸め小数点
- 22. 小数点データentery
- 23. UTF-8(小数点)
- 24. PYTHON - 小数点までの小数点の入力
- 25. 小数点以下2〜4小数点以下切り上げ
- 26. 小数点を含む浮動小数点書式
- 27. ステップ0.5の2小数点間のPHPランダム小数点
- 28. 浮動小数点値と浮動小数点値の比較
- 29. マッピング[-1、+ 1]はQ31固定小数点に浮動小数点
- 30. CSSが浮動小数点浮動小数点を返す
それは実際にはDecimalFieldにint型として格納されません。テンプレートのタグやモデルメソッドを書いて、小数点以下の数字を出力することもできます。 –
値を受け取って保存する必要があるので、データベースからインポートすることができます.0 – Paulo
については、CharFieldを厳密なクリーンメソッド –