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