如何在Django中建立國家欄位?


如果您需要在表單或資料庫中新增位置欄位,可以使用**CharField**,但這並不是一個好主意。在Django中,我們有一個名為**'django-countries'**的第三方包,它提供了國家欄位。在本文中,讓我們看看如何使用**django-countries**在Django中新增國家欄位。

首先,建立一個Django專案和一個應用。

在INSTALLED_APPS中新增應用並設定**urls**。

安裝**django-countries**模組:

pip install django-countries

在**settings.py**中新增以下內容:

INSTALLED_APPS += [ 'django_countries']

示例

在應用的**urls.py**中:

from django.urls import path
from . import views

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

首先設定您的urls。

在**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處理程式中,我們儲存表單資料。

在應用目錄中建立一個templates資料夾,並在其中建立一個**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)

在這裡,我們建立了一個模型,在這個模型中我們簡單地添加了一個國家欄位,它將儲存國家資料。

現在,執行遷移並應用遷移。全部完成了。現在,您可以繼續檢查輸出。

輸出


更新於:2021年8月26日

3K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告