如何在 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
在此,我們建立了一個模型,其中有兩個值:員工姓名和以美元計的工資。
在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 中沒有花哨的東西。我們在其中建立了一個表單,然後只進行渲染並處理 post 請求。
輸出

廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP