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

จะเพิ่มฟิลด์ Money ใน Django ได้อย่างไร?


บางครั้ง เราอาจต้องเพิ่มข้อมูลที่เกี่ยวข้องกับเงินในเว็บไซต์ เช่น เงินเดือน ค่าธรรมเนียม หรือรายได้ Django ให้ฟิลด์จำนวนเต็ม แต่หลายครั้ง มันไม่ทำงานอย่างที่เราต้องการ ดังนั้น สำหรับการจัดการฟิลด์เงิน เราสามารถใช้ไลบรารีแพ็คเกจที่สามที่จะเพิ่มฟิลด์เงินลงในแบบจำลองของเรา

สร้างโปรเจ็กต์และแอป ฉันตั้งชื่อมันว่า "MoneyFieldDemo" และ "myapp"

ตั้งค่าพื้นฐานเช่น url และ 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 เพิ่ม −

<!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>

เป็นไฟล์ 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

ที่นี่ เราได้สร้างแบบจำลองที่มีชื่อพนักงานสองชื่อและเงินเดือนเป็น USD

ใน 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 เราสร้างแบบฟอร์มในนั้นแล้วแสดงผลและจัดการคำขอโพสต์ด้วย

ผลลัพธ์

จะเพิ่มฟิลด์ Money ใน Django ได้อย่างไร?