Django ORMのDecimalFieldメソッドの使い方を詳しく解説するよ!

DjangoのORM (Object-Relational Mapping) は、データベースとの連携を容易にし、データベース操作をPythonコードで行うための強力なツールです。DecimalFieldメソッドは、数値フィールドをデータベースモデルに追加する際に使用されます。この記事では、DecimalFieldメソッドの使い方を具体的なコード例を交えて説明します。

DecimalFieldメソッドとは?

DecimalFieldメソッドは、データベーステーブル内の数値データを表現するためのフィールドタイプです。通常、金額、価格、評価などの精度が必要な数値データを格納する際に使用されます。DecimalFieldは、PythonのDecimal型として表現され、浮動小数点数よりも精度が高く、誤差が発生しにくい特徴があります。

DecimalFieldメソッドの基本的な使い方

DecimalFieldメソッドを使用して、データベースモデルに数値フィールドを追加する方法を以下に示します。

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=10, decimal_places=2)

この例では、ProductモデルにpriceというDecimalFieldを追加しています。max_digitsは総桁数を、decimal_placesは小数点以下の桁数を指定します。

DecimalFieldメソッドの具体的なコード例

DecimalFieldメソッドをさまざまなケースで使うコード例を紹介します。

1. 送料計算

class ShippingCost(models.Model):
    weight = models.DecimalField(max_digits=5, decimal_places=2)  # 重量(最大5桁、小数点2桁)
    cost = models.DecimalField(max_digits=6, decimal_places=2)    # 送料(最大6桁、小数点2桁)

2. 評価スコア

class ProductReview(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    rating = models.DecimalField(max_digits=3, decimal_places=1)  # 評価(最大3桁、小数点1桁)

3. 貯金残高

class SavingsAccount(models.Model):
    account_number = models.CharField(max_length=20)
    balance = models.DecimalField(max_digits=10, decimal_places=2)  # 残高(最大10桁、小数点2桁)

4. 購入履歴

class PurchaseHistory(models.Model):
    customer = models.ForeignKey(User, on_delete=models.CASCADE)
    total_amount = models.DecimalField(max_digits=10, decimal_places=2)  # 合計金額(最大10桁、小数点2桁)

これらのコード例では、DecimalFieldメソッドを異なる用途で使用しています。max_digitsdecimal_placesを適切に設定して、データベースモデルに数値データを正確に格納できます。

Django ORMのDecimalFieldメソッドは、数値データを扱う際に非常に便利なツールです。適切な設定で使用することで、精度の高い数値データの格納と操作が可能となります。

タイトルとURLをコピーしました