Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để thêm trường Tiền trong Django?

Đôi khi, chúng tôi có thể phải thêm dữ liệu liên quan đến tiền trong một trang web, chẳng hạn như tiền lương, phí hoặc thu nhập. Django cung cấp một trường số nguyên nhưng nhiều khi nó không hoạt động như chúng ta muốn. Vì vậy, để xử lý trường tiền, chúng tôi có thể sử dụng thư viện gói thứ ba sẽ thêm trường tiền vào mô hình của chúng tôi.

Tạo một dự án và một ứng dụng, tôi đặt tên nó là "MoneyFieldDemo" "myapp".

Đặt những thứ cơ bản như url INSTALLED_APPS.

Và có, hãy cài đặt một thư viện -

pip install django-money

Thêm dòng sau vào settings.py -

INSTALLED_APPS+= ["djmoney"]

Ví dụ

Trong ứng dụng, urls.py, thêm các dòng sau -

from django.urls import path
from . import views

urlpatterns = [
   path('', views.home,name="home"),
]

Ở đây, chúng tôi chỉ cần xác định url của chúng tôi điểm cuối sẽ hiển thị html.

Trong thư mục mẫu home.html, thêm -

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

Đây là tệp html mà chúng tôi sẽ hiển thị dưới dạng giao diện người dùng.

Trong models.py, thêm phần sau -

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

Ở đây, chúng tôi đã tạo một mô hình có hai tên nhân viên giá trị và mức lương của anh ta bằng USD.

Trong view.py, thêm phần sau -

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})

Không có gì lạ mắt trong views.py. Chúng tôi đã tạo một biểu mẫu trong đó và sau đó chỉ hiển thị nó và cũng xử lý yêu cầu đăng.

Đầu ra

Làm cách nào để thêm trường Tiền trong Django?