Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django에서 Money 필드를 추가하는 방법은 무엇입니까?

<시간/>

때때로 급여, 수수료 또는 수입과 같은 돈 관련 데이터를 웹사이트에 추가해야 할 수도 있습니다. Django는 정수 필드를 제공하지만 많은 경우 우리가 원하는 대로 작동하지 않습니다. 따라서 money 필드를 처리하기 위해 우리 모델에 money 필드를 추가할 세 번째 패키지 라이브러리를 사용할 수 있습니다.

프로젝트와 앱을 만들고 이름을 "MoneyFieldDemo"로 지정했습니다. 및 "myapp".

URL과 같은 기본 설정 및 INSTALLED_APPS.

그리고 예, 라이브러리를 설치하십시오 -

pip install django-money

settings.py에 다음 줄을 추가합니다. -

INSTALLED_APPS+= ["djmoney"]

예시

앱의 url.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에는 멋진 것이 없습니다. 우리는 그 안에 양식을 만든 다음 그것을 렌더링하고 포스트 요청도 처리합니다.

출력

Django에서 Money 필드를 추가하는 방법은 무엇입니까?