1. 程式人生 > 其它 >Django 模型欄位型別總結

Django 模型欄位型別總結

Django模型中的常見欄位型別

編號 欄位型別Filed Types 描述
1 AutoField 如果沒有指明主鍵,就會產生一個自增的主鍵
2 BigIntegerField 64位的整型數值,從 -2^63 (-9223372036854775808) 到 2^63-1(9223372036854775807)
3 BinaryField 儲存二進位制碼的Field. 只支援bytes 賦值
4 BooleanField 該欄位的預設表單控制元件是CheckboxInput,如果你需要設定null 值,則使用NullBooleanField 來代替BooleanField
5 CharField 用來儲存字串
6 TextField 用來儲存大字串
7 CommaSeparatedIntegerField 一個逗號分隔的整數字段
8 DateField 使用Python的datetime.date例項儲存的日期。auto_now = True:每次儲存物件時,自動設定該欄位為當前時間;auto_now_add=True:物件第一次被建立時自動設定當前時間。需要注意的是,自動儲存的時間的時區使用的是預設時區
9 DateTimeField 使用Python的datetime.datetime例項表示的日期和時間
10 DecimalField 用python中 Decimal 的一個例項來表示十進位制浮點數
11 DurationField 用來儲存一段時間,類似Python中的timedelta
12 EmailField 它和CharField類似,只不過比CharField多了自動校驗輸入的值是否符合Email格式的功能。它使用 EmailValidator 來驗證輸入合法性
13 FileField

一個上傳檔案的欄位。它有兩個可選屬性:
1. FileField.upload_to :它的值是一個本地檔案系統的路徑,這個路徑將被追加到MEDIA_ROOT設定中。MEDIA_ROOT在settings中,用來指定使用者上傳檔案的存放路徑。
2. FileField.storage用來指定Storage 物件。例如:
from django.core.files.storage import FileSystemStorage
fs = FileSystemStorage(location=’/media/photos’)
class Car(models.Model):
photo = models.ImageField(storage=fs)

14 FilePathField

如果,你想使用檔案系統中的檔案,而不是使用者上傳的檔案,請使用FilePathField。例如:from django.conf import settings
class Document(models.Model):
audio = models.FilePathField(path=settings.FILE_PATH_FIELD_DIRECTORY)

15 FloatField 用Python的一個float 例項來表示一個浮點數
16 ImageField 是FileField的子類,比FileField多了有效圖片校驗功能,確保它是個有效的image
17 IntegerField 整數字段
18 GenericIPAddressField 一個 IPv4 或 IPv6 地址, 字串格式 (例如 192.0.2.30 或 2a02:42fe::4). 這個欄位的預設表單小部件是一個TextInput
19 PositiveIntegerField 類似 IntegerField, 但值必須是正數或者零(0)
20 PositiveSmallIntegerField 小於32767 的正整數
21 SlugField Slug 是一個新聞術語(通常叫做短標題)。一個slug只能包含字母、數字、下劃線或者是連字元,通常用來作為短標籤。通常它們是用來放在URL裡的
22 SmallIntegerField -32768 至 32767的整數
23 TextField 大文字欄位。該模型預設的表單元件是Textarea
24 TimeField 時間欄位,和Python中 datetime.time 一樣
25 URLField 一個CharField 型別的URL
26 UUIDField 一個用來儲存UUID的欄位。使用Python的UUID類
27 ForeignKey 多對一關係
28 ManyToManyField 多對多關聯
29 多對多關聯 一對一關聯關係