如何在 Django 中添加 Money 字段?

pythonserver side programmingprogramming

有时,我们可能需要在网站中添加与金钱相关的数据,如工资、费用或收入。Django 提供了一个整数字段,但很多时候,它并不像我们想要的那样工作。因此,为了处理 money 字段,我们可以使用第三个包库将 money 字段添加到我们的模型中。

创建一个项目和一个应用程序,我将其命名为 "MoneyFieldDemo""myapp"。

设置基本内容,如 urlsINSTALLED_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"),
]

在这里,我们只需定义将呈现 html 的 url 端点。

在 templates 文件夹的 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

# 在此处创建您的模型。
class Data(models.Model):
   Name=models.CharField(max_length=100)
   salary = MoneyField(max_digits=14, decimal_places=2, defa
ult_currency='USD') #这是货币字段

在这里,我们创建了一个模型,它有两个值:员工姓名和以美元计算的工资。

view.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 中没有什么特别的。我们在其中创建了一个表单,然后渲染它并处理发布请求。

输出


相关文章