Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีเพิ่ม Money Field ใน Django สำหรับจัดการข้อมูลเงิน

เมื่อต้องจัดเก็บข้อมูลเกี่ยวกับเงิน เช่น เงินเดือน ค่าธรรมเนียม หรือรายได้ การใช้ IntegerField ธรรมดาอาจไม่เพียงพอ บทความนี้แนะนำการใช้ django-money ซึ่งให้ MoneyField ที่จัดการสกุลเงินและทศนิยมได้อย่างถูกต้อง

ขั้นตอนการติดตั้งและใช้งาน

1. ติดตั้งแพ็กเกจ

pip install django-money

2. เพิ่มใน settings.py

INSTALLED_APPS += ['djmoney']

3. สร้าง Model ใช้ MoneyField

from django.db import models
from djmoney.models.fields import MoneyField

class Data(models.Model):
    name = models.CharField(max_length=100)
    salary = MoneyField(
        max_digits=14,
        decimal_places=2,
        default_currency='USD'
    )

4. สร้าง Form และ View

from django import forms
from .models import Data

class SalaryForm(forms.ModelForm):
    class Meta:
        model = Data
        fields = '__all__'

def home(request):
    if request.method == 'POST':
        form = SalaryForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SalaryForm()
    return render(request, 'home.html', {'form': form})

5. Template home.html

<!DOCTYPE html>
<html>
<head>
    <title>Money Field Demo</title>
</head>
<body>
    <h2>Salary Form</h2>
    <form method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit">
    </form>
</body>
</html>

คุณสมบัติของ MoneyField

  • max_digits: จำนวนตัวเลขสูงสุด (รวมทศนิยม)
  • decimal_places: จำนวนตำแหน่งทศนิยม
  • default_currency: สกุลเงินเริ่มต้น (ISO 4217 code)
  • จัดเก็บค่าและสกุลเงินแยกกันในฐานข้อมูล
  • รองรับการแปลงสกุลเงิน (ต้องตั้งค่า EXCHANGE_BACKEND)

ผลลัพธ์

ฟอร์มจะแสดงช่องกรอกจำนวนเงินพร้อมเลือกสกุลเงิน ทำให้จัดการข้อมูลทางการเงินได้แม่นยำและมาตรฐาน