如何在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+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告