如何在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)
在這裡,我們建立了一個模型,在這個模型中我們簡單地添加了一個國家欄位,它將儲存國家資料。
現在,執行遷移並應用遷移。全部完成了。現在,您可以繼續檢查輸出。
輸出
廣告