如何在Django中添加一个货币字段?

如何在Django中添加一个货币字段?

有时候,我们需要在网站中添加与钱有关的数据,例如薪水、费用或收入。Django提供了整数字段,但很多时候,它并不能按照我们的要求工作。因此,为了处理货币字段,我们可以使用一个第三方库,它将在我们的模型中添加货币字段。

创建一个项目和一个应用程序,我将它们命名为 “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"),
]

在这里,我们只是定义了我们的 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, default_currency='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 中并没有什么花哨的东西,我们只是在其中创建了一个表单,然后渲染它并处理post请求。

输出

如何在Django中添加一个货币字段?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程