कभी-कभी, हमें किसी वेबसाइट में पैसे से संबंधित डेटा, जैसे वेतन, शुल्क या आय को जोड़ना पड़ सकता है। 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 . को परिभाषित करते हैं एंडपॉइंट जो एचटीएमएल प्रस्तुत करेगा।
टेम्प्लेट फ़ोल्डर के home.html, . में जोड़ें -
<!DOCTYPE html> <html> <head> <title> TUT </title> </head> <body> <h2>Hi</h2> <form action="/" method="post"> {% csrf_token %} {{ form }} <input type="submit" value="Submit"> </form> </body> </html>
यह एचटीएमएल फाइल है जिसे हम फ्रंटएंड के रूप में प्रस्तुत करने जा रहे हैं।
models.py, . में निम्नलिखित जोड़ें -
from django.db import models from djmoney.models.fields import MoneyField # Create your models here. class Data(models.Model): Name=models.CharField(max_length=100) salary = MoneyField(max_digits=14, decimal_places=2, defa ult_currency='USD') #This is money field
यहां, हमने एक मॉडल बनाया है जिसमें दो मूल्य कर्मचारी नाम और उसका वेतन अमरीकी डालर में है।
view.py, . में निम्नलिखित जोड़ें -
from django.shortcuts import render from django import forms from .models import Data # Create your views here. 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. . में कुछ भी फैंसी नहीं है हमने इसमें एक फॉर्म बनाया और फिर उसे रेंडर किया और पोस्ट रिक्वेस्ट को भी हैंडल किया।
आउटपुट