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

Django에서 Country 필드를 만드는 방법은 무엇입니까?

<시간/>

양식이나 데이터베이스에 위치 필드를 추가해야 하는 경우 charfield를 사용하여 추가할 수 있습니다. 그러나 그것은 여전히 ​​​​좋은 생각이 아닙니다. Django에는 'django-countries'라는 타사 패키지가 있습니다. 국가 필드를 제공합니다. 이 문서에서는 django-countries를 사용하는 방법을 살펴보겠습니다. Django에 국가 필드를 추가합니다.

먼저 Django 프로젝트와 앱을 만듭니다.

INSTALLED_APPS에 앱을 추가하고 URL을 설정하세요. .

django-countries 설치 모듈 -

pip install django-countries

settings.py에서 , 이것을 추가하십시오 -

INSTALLED_APPS += [ 'django_countries']

앱의 url.py에서 -

from django.urls import path
from . import views

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

먼저 URL을 설정하세요.

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

여기서는 단순히 양식을 만들고 GET 요청 처리기에서 렌더링했습니다. 우리의 관점에서. POST 핸들러에서 양식 데이터를 저장합니다.

앱 디렉토리 및 home.html에 템플릿 폴더를 만듭니다. 그 안에. home.html에서 -

<!DOCTYPE html>
<html>
   <head>
      <title>
         TUT
      </title>
      <style>

      </style>
   </head>
   <body>
      <h2>FORM</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 django_countries.fields import CountryField

# Create your models here.
class Data(models.Model):
   Name=models.CharField(max_length=100)
   salary = models.CharField(max_length=20)
   country_of_work = CountryField(blank=True)

여기에서 국가 데이터를 저장할 국가 필드를 추가하는 모델을 만들었습니다.

이제 마이그레이션을 수행하고 마이그레이션하십시오. 모든 작업이 완료되었습니다. 이제 출력 확인을 진행할 수 있습니다.

출력


Django에서 Country 필드를 만드는 방법은 무엇입니까?