양식이나 데이터베이스에 위치 필드를 추가해야 하는 경우 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)
여기에서 국가 데이터를 저장할 국가 필드를 추가하는 모델을 만들었습니다.
이제 마이그레이션을 수행하고 마이그레이션하십시오. 모든 작업이 완료되었습니다. 이제 출력 확인을 진행할 수 있습니다.
출력