कभी-कभी, हमें वेबसाइट पर मनी-संबंधी डेटा जोड़ना पड़ता है, जैसे सैलरी, फीस या आय। Django एक इंटीजर फील्ड प्रदान करता है लेकिन कई बार यह हमारी इच्छा के अनुसार काम नहीं करता। इसलिए, मनी फील्ड को संभालने के लिए, हम एक थर्ड-पार्टी लाइब्रेरी का उपयोग कर सकते हैं जो हमारे मॉडल में मनी फील्ड जोड़ देगी।
प्रोजेक्ट सेटअप
एक प्रोजेक्ट और ऐप बनाएं, मैंने इसका नाम "MoneyFieldDemo" और "myapp" रखा है।
urls और INSTALLED_APPS जैसी बुनियादी चीजें सेट करें।
लाइब्रेरी इंस्टॉल करें
pip install django-money
settings.py में जोड़ें
INSTALLED_APPS += ["djmoney"]
उदाहरण
ऐप का urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name="home"),
]
यहां, हम बस अपने URL एंडपॉइंट को परिभाषित करते हैं जो HTML रेंडर करेगा।
टेम्पलेट्स फोल्डर में home.html
TUT
Hi
यह वह HTML फाइल है जिसे हम फ्रंटएंड के रूप में रेंडर करने जा रहे हैं।
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') # यह मनी फील्ड है
यहां, हमने एक मॉडल बनाया जिसमें दो मान हैं: कर्मचारी का नाम और उसका वेतन USD में।
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})
views.py में कुछ खास नहीं है। हमने इसमें एक फॉर्म बनाया और फिर बस इसे रेंडर किया और पोस्ट रिक्वेस्ट को भी संभाला।
आउटपुट
