ওয়েবসাইটে বেতন, ফি, আয় ইত্যাদি টাকা-পয়সার ডেটা সংরক্ষণ করার জন্য ডжанগোর ডিফল্ট IntegerField বা DecimalField পর্যাপ্ত নাও হতে পারে। django-money লাইব্রেরি করেন্সি সাপোর্টসহ একটি শক্তিশালী MoneyField প্রদান করে।
pip install django-money
settings.py-এ:
INSTALLED_APPS += ['djmoney']
models.py-এ:
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'
)
এখানে max_digits মোট অঙ্ক, decimal_places দশমিকের পরে অঙ্ক এবং default_currency ডিফল্ট মুদ্রা (ISO 4217 কোড) নির্দেশ করে।
views.py-এ সাধারণ মডেলফর্ম ব্যবহার করুন:
from django.shortcuts import render
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})
Money Field Demo
বেতন এন্ট্রি
ফর্ম রেন্ডার হলে টাকার পরিমাণ এবং মুদ্রা বেছে নেওয়ার জন্য দুটি ইনপুট ফিল্ড (অনেক সময় ড্রপডাউন) দেখাবে। ডাটাবেসে এটি দুটি কলাম হিসেবে সংরক্ষিত হয়: salary (Decimal) এবং salary_currency (CharField)।